From aeae818f80a02f01b0f29ec450797e13d8efb79d Mon Sep 17 00:00:00 2001 From: Philip White Date: Mon, 1 Nov 2021 21:05:07 +0000 Subject: [PATCH] Updated EnemyReturn Script To Handle Dropping Item --- .../Assets/Examples/Defender/Defender.unity | 77 ++++++++++++++++++- .../Assets/Scripts/Movement/EnemyReturn.cs | 32 +++++--- 2 files changed, 95 insertions(+), 14 deletions(-) diff --git a/Unity-Files/Assets/Examples/Defender/Defender.unity b/Unity-Files/Assets/Examples/Defender/Defender.unity index 0048dca..12d344c 100644 --- a/Unity-Files/Assets/Examples/Defender/Defender.unity +++ b/Unity-Files/Assets/Examples/Defender/Defender.unity @@ -404,7 +404,7 @@ Transform: - {fileID: 213808747} - {fileID: 565676025} m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &267901559 MonoBehaviour: @@ -897,7 +897,7 @@ Transform: - {fileID: 883890380} - {fileID: 950081912} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &990867867 GameObject: @@ -910,6 +910,7 @@ GameObject: - component: {fileID: 990867870} - component: {fileID: 990867869} - component: {fileID: 990867868} + - component: {fileID: 990867871} m_Layer: 0 m_Name: CollisionDetector m_TagString: Player @@ -928,7 +929,7 @@ BoxCollider2D: m_Density: 1 m_Material: {fileID: 0} m_IsTrigger: 0 - m_UsedByEffector: 0 + m_UsedByEffector: 1 m_UsedByComposite: 0 m_Offset: {x: 0, y: 0} m_SpriteTilingProperty: @@ -970,6 +971,19 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &990867871 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 990867867} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bba26da02d9d0b540be9dee579836806, type: 3} + m_Name: + m_EditorClassIdentifier: + droppedItemAmount: 3 --- !u!1 &1011785959 GameObject: m_ObjectHideFlags: 0 @@ -1043,6 +1057,63 @@ BoxCollider2D: serializedVersion: 2 m_Size: {x: 12, y: 2} m_EdgeRadius: 0 +--- !u!1 &1019999843 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1019999845} + - component: {fileID: 1019999844} + m_Layer: 0 + m_Name: CollisionDetectorReturn + m_TagString: Finish + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!61 &1019999844 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1019999843} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 1 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0.19999999, y: 0.22, z: 0.19999999, w: 0.24} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1.28, y: 1.28} + newSize: {x: 17.75735, y: 1.2300253} + adaptiveTilingThreshold: 0.5 + drawMode: 2 + adaptiveTiling: 0 + m_AutoTiling: 1 + serializedVersion: 2 + m_Size: {x: 1.28, y: 1.28} + m_EdgeRadius: 0 +--- !u!4 &1019999845 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1019999843} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 6.48, z: 0} + m_LocalScale: {x: 1, y: 1, z: 2} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1066252771 GameObject: m_ObjectHideFlags: 0 diff --git a/Unity-Files/Assets/Scripts/Movement/EnemyReturn.cs b/Unity-Files/Assets/Scripts/Movement/EnemyReturn.cs index d813cd1..10515ca 100644 --- a/Unity-Files/Assets/Scripts/Movement/EnemyReturn.cs +++ b/Unity-Files/Assets/Scripts/Movement/EnemyReturn.cs @@ -14,6 +14,8 @@ public class EnemyReturn : Physics2DObject public GameObject droppedObject; [Header("Death Effect When Shot")] public GameObject deathEffect; + [Header("Has Droppable Object")] + public bool hasDroppableObject = false; private bool isReturning = false; private Vector2 movement = new Vector2(0f, 0f); @@ -47,12 +49,6 @@ public class EnemyReturn : Physics2DObject string playerTag = otherCollider.gameObject.tag; if (playerTag == "Player" || playerTag == "Player2") { - // HealthSystemAttribute healthScript = otherCollider.gameObject.GetComponent(); - // if (healthScript != null) - // { - // // subtract health from the player - // healthScript.ModifyHealth(-1); - // } this.GetComponent().flipY = false; isReturning = true; } @@ -63,11 +59,25 @@ public class EnemyReturn : Physics2DObject GameObject newDeathEffect = Instantiate(deathEffect); newDeathEffect.transform.position = this.transform.position; } - float randomX = Random.Range(0, 1); - float randomY = Random.Range(0, 1); - GameObject newDroppedObject = Instantiate(droppedObject); - newDroppedObject.transform.position = new Vector2(randomX + this.transform.position.x, randomY + this.transform.position.y); - + if (hasDroppableObject) + { + GameObject newDroppedObject = Instantiate(droppedObject); + newDroppedObject.transform.position = new Vector2(Random.Range(0, 1) + this.transform.position.x, Random.Range(0, 1) + this.transform.position.y); + } + Destroy(gameObject); + } + else if (playerTag == "Finish" && hasDroppableObject) + { + HealthSystemAttribute healthScript = GameObject.Find("CollisionDetector").gameObject.GetComponent(); + if (healthScript != null) + { + // subtract health from the player + healthScript.ModifyHealth(-1); + } + Destroy(gameObject); + } + else if (playerTag == "Finish" && isReturning) + { Destroy(gameObject); } }