From 14aa42696e0fd93b2abba6b2f135140a5d359f24 Mon Sep 17 00:00:00 2001 From: Miguel Astor Date: Mon, 10 Aug 2026 22:58:50 -0400 Subject: [PATCH] TO SQUASH: Fixed issue with yummy missed sound playing multiple times. --- Assets/Animations/Yummies/YummyKey.controller | 54 +++++++++++++- Assets/Animations/Yummies/YummyKeyMiss.anim | 9 +-- .../Animations/Yummies/YummyLaser.controller | 54 +++++++++++++- Assets/Animations/Yummies/YummyLaserMiss.anim | 9 +-- .../Yummies/YummyLigthning.controller | 56 +++++++++++++- .../Yummies/YummyLigthningMiss.anim | 9 +-- .../Animations/Yummies/YummyMagnet.controller | 56 +++++++++++++- .../Animations/Yummies/YummyMagnetMiss.anim | 9 +-- .../Animations/Yummies/YummyTransparent.anim | 73 +++++++++++++++++++ .../Yummies/YummyTransparent.anim.meta | 8 ++ Assets/Scenes/Game.unity | 2 + Assets/Scripts/Game/Shark.cs | 16 +++- Assets/Scripts/Game/Spawners/SharkSpawner.cs | 19 +++-- Assets/Scripts/Game/Yummies/YummyBase.cs | 12 ++- 14 files changed, 336 insertions(+), 50 deletions(-) create mode 100644 Assets/Animations/Yummies/YummyTransparent.anim create mode 100644 Assets/Animations/Yummies/YummyTransparent.anim.meta diff --git a/Assets/Animations/Yummies/YummyKey.controller b/Assets/Animations/Yummies/YummyKey.controller index 6970835..f8585b4 100644 --- a/Assets/Animations/Yummies/YummyKey.controller +++ b/Assets/Animations/Yummies/YummyKey.controller @@ -1,5 +1,31 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-9069940211912870391 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: YummyTransparent + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 136176123f6cc3007b0a4f39eefb4a00, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1107 &-4520202781878639822 AnimatorStateMachine: serializedVersion: 7 @@ -15,6 +41,9 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: -3649881718396374124} m_Position: {x: 538, y: 60.5, z: 0} + - serializedVersion: 1 + m_State: {fileID: -9069940211912870391} + m_Position: {x: 700, y: 250, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] @@ -35,7 +64,8 @@ AnimatorState: m_Name: YummyKeyMiss m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: 2368477872874752379} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -105,6 +135,28 @@ AnimatorController: m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} m_EvaluateTransitionsOnStart: 1 +--- !u!1101 &2368477872874752379 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -9069940211912870391} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1102 &8884990661533227216 AnimatorState: serializedVersion: 6 diff --git a/Assets/Animations/Yummies/YummyKeyMiss.anim b/Assets/Animations/Yummies/YummyKeyMiss.anim index f5d3c46..e6f1850 100644 --- a/Assets/Animations/Yummies/YummyKeyMiss.anim +++ b/Assets/Animations/Yummies/YummyKeyMiss.anim @@ -91,11 +91,4 @@ AnimationClip: m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 - m_Events: - - time: 0.8 - functionName: DestroyYummy - data: - objectReferenceParameter: {fileID: 0} - floatParameter: 0 - intParameter: 0 - messageOptions: 0 + m_Events: [] diff --git a/Assets/Animations/Yummies/YummyLaser.controller b/Assets/Animations/Yummies/YummyLaser.controller index d17f7a1..12d1e1e 100644 --- a/Assets/Animations/Yummies/YummyLaser.controller +++ b/Assets/Animations/Yummies/YummyLaser.controller @@ -42,6 +42,9 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: 3045375717937126488} m_Position: {x: 584, y: 50.5, z: 0} + - serializedVersion: 1 + m_State: {fileID: 2259880169987401022} + m_Position: {x: 740, y: 200, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] @@ -52,6 +55,28 @@ AnimatorStateMachine: m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: -8844275775214021049} +--- !u!1101 &-2173092474212085878 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 2259880169987401022} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!91 &9100000 AnimatorController: m_ObjectHideFlags: 0 @@ -106,6 +131,32 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1102 &2259880169987401022 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: YummyTransparent + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 136176123f6cc3007b0a4f39eefb4a00, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1102 &3045375717937126488 AnimatorState: serializedVersion: 6 @@ -116,7 +167,8 @@ AnimatorState: m_Name: YummyLaserMiss m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: -2173092474212085878} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 diff --git a/Assets/Animations/Yummies/YummyLaserMiss.anim b/Assets/Animations/Yummies/YummyLaserMiss.anim index 9423ca6..3bf0a91 100644 --- a/Assets/Animations/Yummies/YummyLaserMiss.anim +++ b/Assets/Animations/Yummies/YummyLaserMiss.anim @@ -97,11 +97,4 @@ AnimationClip: m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 - m_Events: - - time: 0.8 - functionName: DestroyYummy - data: - objectReferenceParameter: {fileID: 0} - floatParameter: 0 - intParameter: 0 - messageOptions: 0 + m_Events: [] diff --git a/Assets/Animations/Yummies/YummyLigthning.controller b/Assets/Animations/Yummies/YummyLigthning.controller index c15de2c..e430c61 100644 --- a/Assets/Animations/Yummies/YummyLigthning.controller +++ b/Assets/Animations/Yummies/YummyLigthning.controller @@ -1,5 +1,53 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-6545313961321648107 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: YummyTransparent + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 136176123f6cc3007b0a4f39eefb4a00, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-5705082485832391116 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -6545313961321648107} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1102 &-4949974239878761578 AnimatorState: serializedVersion: 6 @@ -37,7 +85,8 @@ AnimatorState: m_Name: YummyLigthningMiss m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: -5705082485832391116} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -97,6 +146,9 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: -1853721100706032753} m_Position: {x: 563, y: 8.5, z: 0} + - serializedVersion: 1 + m_State: {fileID: -6545313961321648107} + m_Position: {x: 720, y: 160, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] @@ -104,7 +156,7 @@ AnimatorStateMachine: m_StateMachineBehaviours: [] m_AnyStatePosition: {x: 50, y: 20, z: 0} m_EntryPosition: {x: 50, y: 120, z: 0} - m_ExitPosition: {x: 800, y: 120, z: 0} + m_ExitPosition: {x: 820, y: 90, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: -4949974239878761578} --- !u!1101 &9167902146132135040 diff --git a/Assets/Animations/Yummies/YummyLigthningMiss.anim b/Assets/Animations/Yummies/YummyLigthningMiss.anim index 60dcdd0..902b04c 100644 --- a/Assets/Animations/Yummies/YummyLigthningMiss.anim +++ b/Assets/Animations/Yummies/YummyLigthningMiss.anim @@ -94,11 +94,4 @@ AnimationClip: m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 - m_Events: - - time: 0.8 - functionName: DestroyYummy - data: - objectReferenceParameter: {fileID: 0} - floatParameter: 0 - intParameter: 0 - messageOptions: 0 + m_Events: [] diff --git a/Assets/Animations/Yummies/YummyMagnet.controller b/Assets/Animations/Yummies/YummyMagnet.controller index 8f1a7e3..bb21a62 100644 --- a/Assets/Animations/Yummies/YummyMagnet.controller +++ b/Assets/Animations/Yummies/YummyMagnet.controller @@ -66,7 +66,8 @@ AnimatorState: m_Name: YummyMagnetMiss m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: 5603974221548383080} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -96,7 +97,10 @@ AnimatorStateMachine: m_Position: {x: 279, y: 242, z: 0} - serializedVersion: 1 m_State: {fileID: 679893021304721713} - m_Position: {x: 550, y: 240, z: 0} + m_Position: {x: 500, y: 80, z: 0} + - serializedVersion: 1 + m_State: {fileID: 4221053959861897625} + m_Position: {x: 690, y: 240, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] @@ -107,6 +111,54 @@ AnimatorStateMachine: m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: -710635540647452494} +--- !u!1102 &4221053959861897625 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: YummyTransparent + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 136176123f6cc3007b0a4f39eefb4a00, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &5603974221548383080 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 4221053959861897625} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1101 &6066366224202908235 AnimatorStateTransition: m_ObjectHideFlags: 1 diff --git a/Assets/Animations/Yummies/YummyMagnetMiss.anim b/Assets/Animations/Yummies/YummyMagnetMiss.anim index 75b6d77..2df72b8 100644 --- a/Assets/Animations/Yummies/YummyMagnetMiss.anim +++ b/Assets/Animations/Yummies/YummyMagnetMiss.anim @@ -94,11 +94,4 @@ AnimationClip: m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 - m_Events: - - time: 0.8 - functionName: DestroyYummy - data: - objectReferenceParameter: {fileID: 0} - floatParameter: 0 - intParameter: 0 - messageOptions: 0 + m_Events: [] diff --git a/Assets/Animations/Yummies/YummyTransparent.anim b/Assets/Animations/Yummies/YummyTransparent.anim new file mode 100644 index 0000000..ff20847 --- /dev/null +++ b/Assets/Animations/Yummies/YummyTransparent.anim @@ -0,0 +1,73 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: YummyTransparent + serializedVersion: 8 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - serializedVersion: 2 + curve: + - time: 0 + value: {fileID: 9122294262205109509, guid: b634b1f944e581cbeb43efe97e96ec62, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + flags: 2 + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + metaData: 0 + pptrCurveMapping: + - {fileID: 9122294262205109509, guid: b634b1f944e581cbeb43efe97e96ec62, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.016666668 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animations/Yummies/YummyTransparent.anim.meta b/Assets/Animations/Yummies/YummyTransparent.anim.meta new file mode 100644 index 0000000..d008a96 --- /dev/null +++ b/Assets/Animations/Yummies/YummyTransparent.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 136176123f6cc3007b0a4f39eefb4a00 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index d34f177..7ed2e22 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -356,6 +356,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 95d73a7ad911de521a39ec73860fe954, type: 3} m_Name: m_EditorClassIdentifier: Assembly-CSharp::SharkSpawner + sharkPrefab: {fileID: 1185323843861964289, guid: 4bb45ba16a3bbd351a45d39c3f0b62f9, type: 3} + gameBoardSpriteRenderer: {fileID: 297740151} --- !u!1 &118530397 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Game/Shark.cs b/Assets/Scripts/Game/Shark.cs index 70d0ead..03caa21 100644 --- a/Assets/Scripts/Game/Shark.cs +++ b/Assets/Scripts/Game/Shark.cs @@ -13,6 +13,10 @@ public class Shark : MonoBehaviour public Player player; + public SpriteRenderer gameBoardSpriteRenderer; + + private Bounds gameBoardBounds; + private AudioSource audioSource; private Animator animator; @@ -33,12 +37,14 @@ public class Shark : MonoBehaviour private static int sharkKillPoints = 100; + private bool spawnFinished = false; + // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { audioSource = GetComponent(); animator = GetComponent(); - + gameBoardBounds = gameBoardSpriteRenderer.bounds; bool spawnLeft = Random.Range(0, 2) == 0; angle = spawnLeft ? 90 : 270; @@ -49,12 +55,18 @@ public class Shark : MonoBehaviour // Update is called once per frame void FixedUpdate() { - // Do stuff only if the spawn animation is finished + // Check if the spawn animation has finished. if ( (animator.GetCurrentAnimatorStateInfo(0).IsName("SharkSpawnRight") || animator.GetCurrentAnimatorStateInfo(0).IsName("SharkSpawnLeft")) && animator.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1.0f ) + { + spawnFinished = true; + } + + // Do stuff only if the spawn animation has finished. + if (spawnFinished) { // TODO: Check if the shark was killed. diff --git a/Assets/Scripts/Game/Spawners/SharkSpawner.cs b/Assets/Scripts/Game/Spawners/SharkSpawner.cs index 15dcdff..98f707b 100644 --- a/Assets/Scripts/Game/Spawners/SharkSpawner.cs +++ b/Assets/Scripts/Game/Spawners/SharkSpawner.cs @@ -6,8 +6,6 @@ public class SharkSpawner : MonoBehaviour public SpriteRenderer gameBoardSpriteRenderer; - private Bounds sharkBounds; - private Bounds gameBoardBounds; private float spawnTimer = 0f; @@ -22,7 +20,6 @@ public class SharkSpawner : MonoBehaviour void Start() { gameBoardBounds = gameBoardSpriteRenderer.bounds; - sharkBounds = sharkPrefab.GetComponent().bounds; Reset(); } @@ -37,6 +34,9 @@ public class SharkSpawner : MonoBehaviour if (Random.value < spawnProbability) { GameObject shark = Instantiate(sharkPrefab, spawnPosition, Quaternion.identity); + Shark sharkScript = shark.GetComponent(); + sharkScript.gameBoardSpriteRenderer = gameBoardSpriteRenderer; + sharkScript.player = FindAnyObjectByType(); isActive = false; } } @@ -46,14 +46,19 @@ public class SharkSpawner : MonoBehaviour { isActive = true; spawnTimer = 0f; + + Vector2 boardCenter = gameBoardBounds.center; + Vector2 spawnAreaSize = gameBoardBounds.size * (2f / 3f); + Vector2 halfSpawnArea = spawnAreaSize * 0.5f; + spawnPosition = new Vector2( Random.Range( - gameBoardBounds.min.x + sharkBounds.extents.x, - gameBoardBounds.max.x - sharkBounds.extents.x + boardCenter.x - halfSpawnArea.x, + boardCenter.x + halfSpawnArea.x ), Random.Range( - gameBoardBounds.min.y + sharkBounds.extents.y, - gameBoardBounds.max.y - sharkBounds.extents.y + boardCenter.y - halfSpawnArea.y, + boardCenter.y + halfSpawnArea.y ) ); } diff --git a/Assets/Scripts/Game/Yummies/YummyBase.cs b/Assets/Scripts/Game/Yummies/YummyBase.cs index bc6d022..9330bf3 100644 --- a/Assets/Scripts/Game/Yummies/YummyBase.cs +++ b/Assets/Scripts/Game/Yummies/YummyBase.cs @@ -1,4 +1,5 @@ using UnityEngine; +using System.Collections; public abstract class YummyBase : MonoBehaviour { @@ -20,6 +21,8 @@ public abstract class YummyBase : MonoBehaviour private float missedTimer = 0f; + private bool isMissed = false; + // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { @@ -32,7 +35,7 @@ public abstract class YummyBase : MonoBehaviour // Update is called once per frame void FixedUpdate() { - if (isObtained) + if (isObtained || isMissed) { return; } @@ -41,10 +44,12 @@ public abstract class YummyBase : MonoBehaviour missedTimer += Time.fixedDeltaTime; - if (missedTimer >= 5f) + if (missedTimer >= 5f && !isMissed) { + isMissed = true; audioSource.PlayOneShot(missedSound); animator.SetTrigger("missed"); + StartCoroutine(DestroyYummy()); } } @@ -85,8 +90,9 @@ public abstract class YummyBase : MonoBehaviour } } - public void DestroyYummy() + public IEnumerator DestroyYummy() { + yield return new WaitForSeconds(1.5f); Destroy(gameObject); }