From da82aa478c2bca037a411cf6c2f23e0c471c62ac Mon Sep 17 00:00:00 2001 From: Valdimir Date: Thu, 29 Jun 2023 06:35:30 +0300 Subject: [PATCH] map element changes --- Assets/Scenes/SampleScene.unity | 4 +++ Assets/Scripts/MapElements/MapElement.cs | 44 +++++++++++++++++++++--- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 5b0a8d6..0e062bb 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -6133,6 +6133,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 1716637651858965058, guid: a7f273d812293e54d92972f62e1f0159, type: 3} + propertyPath: m_SleepingMode + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3931708971405200045, guid: a7f273d812293e54d92972f62e1f0159, type: 3} propertyPath: m_Name value: Player diff --git a/Assets/Scripts/MapElements/MapElement.cs b/Assets/Scripts/MapElements/MapElement.cs index 281e44d..014d590 100644 --- a/Assets/Scripts/MapElements/MapElement.cs +++ b/Assets/Scripts/MapElements/MapElement.cs @@ -9,11 +9,21 @@ public class MapElement : MonoBehaviour private float _respawnElementTimer; private int _respawnTimeout = 4; private bool _needRespawn = false; + private bool _characterInRange = false; + + private BoxCollider2D _boxCollider; + private SpriteRenderer _spriteRenderer; + + private void Start() + { + _boxCollider=GetComponent(); + _spriteRenderer= GetComponentInChildren(); + } public void Hit() { - gameObject.GetComponent().enabled=false; - gameObject.GetComponentInChildren().enabled = false; + _boxCollider.isTrigger=true; + _spriteRenderer.enabled = false; _respawnElementTimer = _respawnTimeout; _needRespawn = true; @@ -27,10 +37,36 @@ public class MapElement : MonoBehaviour if (_respawnElementTimer <= 0) { _respawnElementTimer = _respawnTimeout; - gameObject.GetComponent().enabled = true; - gameObject.GetComponentInChildren().enabled = true; + + if(_characterInRange) + { + print("Character is dead"); + } + + _boxCollider.isTrigger = false; + _spriteRenderer.enabled = true; _needRespawn = false; } } } + + private void OnTriggerEnter2D(Collider2D collider) + { + var character = collider.GetComponent(); + if (character) + { + _characterInRange = true; + } + } + + private void OnTriggerExit2D(Collider2D other) + { + var character = GetComponent().GetComponent(); + if (character) + { + _characterInRange = false; + } + } + + } \ No newline at end of file