A completely working minigame Insert Keys, Added SFX + Light, Still not mergable - needs dev team check

This commit is contained in:
2026-05-11 21:19:01 +02:00
parent 2f86bab336
commit e55aa6b258
23 changed files with 671 additions and 205 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ae0db95c5de76e04aba3aac1ea3ee4d7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -7,7 +7,7 @@ Material:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Texture - KeyHole
m_Name: Texture - Key
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
@@ -44,7 +44,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: ea70ab3e736c5e74391b290e546b2928, type: 3}
m_Texture: {fileID: 2800000, guid: c275383f4ebe5cf4e9a189c70d5506f7, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 93ae7a6354f6548438e171744c898dd9
guid: 7dfdaf4b8e44aea4f8977b529dfbc5a4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 90fff9b6ab80fd944a66bc5413a9a0aa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 315f8d4589bf64343a7d4dabcba22331
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
using System.Collections;
using UnityEditor;
using NUnit.Framework.Constraints;
using UnityEngine;
public class Key : MonoBehaviour
@@ -7,29 +7,34 @@ public class Key : MonoBehaviour
public bool isSelected = false;
public Vector3 insertedRotation;
public Vector3 insertedOffset;
public Vector3 wiggleOffset = new Vector3(0, 0, 10);
public float lockoutDuration = 3;
public InserKeysMinigameManager manager;
public Vector3 wiggleOffset = new Vector3(0, 0, 10);
public Vector3 winRotation = new Vector3(0, 0, 180);
private Vector3 startPosition;
private Vector3 startRotation;
public float WinRotDuration = 1.0f;
public float lockoutDuration = 3;
public GameObject winText;
public AudioSource lockSound;
public InserKeysMinigameManager manager;
private Light keyLight;
void Start()
{
startPosition = transform.parent.position;
startRotation = transform.parent.eulerAngles;
startPosition = transform.position;
startRotation = transform.eulerAngles;
keyLight = GetComponentInChildren<Light>();
}
void Update()
{
}
void OnMouseDown()
{
if (manager.isInputLocked) return;
isSelected = true;
keyLight.enabled = true;
Debug.Log("Key tapped - isSelected is now: " + isSelected);
}
@@ -37,22 +42,47 @@ public class Key : MonoBehaviour
{
manager.isInputLocked = true;
Vector3 baseRot = transform.parent.eulerAngles;
Vector3 baseRot = transform.eulerAngles;
for (int i = 0; i < 3; i++)
{
transform.parent.eulerAngles = baseRot + wiggleOffset;
yield return new WaitForSeconds(0.08f);
transform.parent.eulerAngles = baseRot - wiggleOffset;
yield return new WaitForSeconds(0.08f);
transform.eulerAngles = baseRot + wiggleOffset;
yield return new WaitForSeconds(0.1f);
transform.eulerAngles = baseRot - wiggleOffset;
yield return new WaitForSeconds(0.1f);
}
transform.parent.eulerAngles = baseRot;
transform.eulerAngles = baseRot;
yield return new WaitForSeconds(lockoutDuration - 0.48f);
transform.parent.position = startPosition;
transform.parent.eulerAngles = startRotation;
transform.position = startPosition;
transform.eulerAngles = startRotation;
isSelected = false;
keyLight.enabled = false;
manager.isInputLocked = false;
}
public IEnumerator HandleWin()
{
manager.isInputLocked = true;
if (lockSound != null) lockSound.Play();
Vector3 startRot = transform.eulerAngles;
Vector3 endRot = startRot + winRotation;
float elapsed = 0f;
while (elapsed < WinRotDuration)
{
elapsed += Time.deltaTime;
float t = elapsed / WinRotDuration;
transform.eulerAngles = Vector3.Lerp(startRot, endRot, t);
yield return null;
}
transform.eulerAngles = endRot;
Debug.Log("You win");
if (winText != null) winText.SetActive(true);
}
}

View File

@@ -25,13 +25,13 @@ public class KeyHole : MonoBehaviour
if (key.isSelected)
{
key.transform.parent.position = transform.position + key.insertedOffset;
key.transform.parent.eulerAngles = key.insertedRotation;
key.transform.position = transform.position + key.insertedOffset;
key.transform.eulerAngles = key.insertedRotation;
Debug.Log("Key teleported to keyhole " + index);
if (manager.CheckKeyHole(index))
{
Debug.Log("Correct, You Win");
key.StartCoroutine(key.HandleWin());
}
else
{

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: afd0db8912502274ea36978b07199362
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 MiB

View File

@@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 68ec230eb85a28348add569042bd9d1d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 213 KiB

View File

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB