From 17ea91231741b60fdb76c7efcdbafc18f89408c6 Mon Sep 17 00:00:00 2001 From: geraldabrhm <geraldabraham16@gmail.com> Date: Wed, 12 Apr 2023 01:02:18 +0700 Subject: [PATCH] feat: handle canvas element show-hide pet health --- Assets/Scripts/Enemy/EnemyAttack.cs | 2 +- .../Scripts/Managers/CanvasElementsManager.cs | 36 +++++++++++++++++++ .../Managers/CanvasElementsManager.cs.meta | 11 ++++++ Assets/Scripts/Pet/PetAttack.cs | 7 ++-- Assets/Scripts/Pet/PetHealth.cs | 17 ++++----- 5 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 Assets/Scripts/Managers/CanvasElementsManager.cs create mode 100644 Assets/Scripts/Managers/CanvasElementsManager.cs.meta diff --git a/Assets/Scripts/Enemy/EnemyAttack.cs b/Assets/Scripts/Enemy/EnemyAttack.cs index ac13392e..68c11c3f 100644 --- a/Assets/Scripts/Enemy/EnemyAttack.cs +++ b/Assets/Scripts/Enemy/EnemyAttack.cs @@ -125,7 +125,7 @@ public class EnemyAttack : MonoBehaviour timer = 0f; } else if(nearestAttackable.gameObject == pet) { - Debug.Log("Enemy try to attack pet"); // ! Debug + // Debug.Log("Enemy try to attack pet"); // ! Debug // If the pet has health to lose... if (petHealth.currentHealth > 0) { diff --git a/Assets/Scripts/Managers/CanvasElementsManager.cs b/Assets/Scripts/Managers/CanvasElementsManager.cs new file mode 100644 index 00000000..27060259 --- /dev/null +++ b/Assets/Scripts/Managers/CanvasElementsManager.cs @@ -0,0 +1,36 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class CanvasElementsManager : MonoBehaviour +{ + GameObject[] petUIElements; + + void Awake() + { + petUIElements = GameObject.FindGameObjectsWithTag("PetUI"); + } + + void Start() + { + GameObject pet = GameObject.FindGameObjectWithTag ("Pet"); + if(pet != null) + { + setPetUIDisplayed(true); + } + else + { + setPetUIDisplayed(false); + } + } + + public void setPetUIDisplayed(bool isDisplayed) + { + Debug.Log($"Pet UI Displayed: {isDisplayed}"); + foreach(var petUIElement in petUIElements) + { + petUIElement.SetActive(isDisplayed); + } + } +} diff --git a/Assets/Scripts/Managers/CanvasElementsManager.cs.meta b/Assets/Scripts/Managers/CanvasElementsManager.cs.meta new file mode 100644 index 00000000..1c472e49 --- /dev/null +++ b/Assets/Scripts/Managers/CanvasElementsManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1a6efe4df810cf5448c99498bd01e9a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Pet/PetAttack.cs b/Assets/Scripts/Pet/PetAttack.cs index 5b5921c2..d5f73b4b 100644 --- a/Assets/Scripts/Pet/PetAttack.cs +++ b/Assets/Scripts/Pet/PetAttack.cs @@ -49,15 +49,14 @@ public class PetAttack : MonoBehaviour GameObject PickEnemyToAttacked() { string currentTag = GetCurrentEnemyTag(); - Debug.Log($"Current enemy tag: {currentTag}"); + // Debug.Log($"Current enemy tag: {currentTag}"); // ! Debug GameObject[] enemies = GameObject.FindGameObjectsWithTag(currentTag); - Debug.Log($"Skeleton watch {enemies.Length} enemies"); // ! Debug + // Debug.Log($"Skeleton watch {enemies.Length} enemies"); // ! Debug if(enemies.Length > 0) { GameObject pickedEnemy = enemies[0]; float nearestDistToEnemy = Vector3.Distance(gameObject.transform.position, pickedEnemy.transform.position); - Debug.Log($"First enemy in skeleton iteration: {pickedEnemy.name}"); // ! Debug foreach(var enemy in enemies) { float distToCurrentEnemy = Vector3.Distance(gameObject.transform.position, enemy.transform.position); @@ -71,7 +70,7 @@ public class PetAttack : MonoBehaviour Debug.Log($"Nearest enemy from skeleton: {pickedEnemy.name}"); // ! Debug return pickedEnemy; } - Debug.Log("There are no enemy"); + Debug.Log("There are no enemy"); // ! Debug return null; } diff --git a/Assets/Scripts/Pet/PetHealth.cs b/Assets/Scripts/Pet/PetHealth.cs index 9a38e200..d94e02bb 100644 --- a/Assets/Scripts/Pet/PetHealth.cs +++ b/Assets/Scripts/Pet/PetHealth.cs @@ -11,25 +11,25 @@ public class PetHealth : MonoBehaviour Animator anim; AudioSource petAudio; + CanvasElementsManager canvasManager; bool isDead; bool damaged; - void Awake() { anim = GetComponent<Animator>(); petAudio = GetComponent<AudioSource>(); - Debug.Log("PetHealth script loaded"); - GameObject[] petUIElements = GameObject.FindGameObjectsWithTag("PetUI"); - foreach(var petUIElement in petUIElements) - { - Debug.Log(petUIElement.name); - petUIElement.SetActive(true); - } + + GameObject hudCanvas = GameObject.Find("HUDCanvas"); + canvasManager = hudCanvas.GetComponent<CanvasElementsManager>(); currentHealth = startingHealth; } + void Start() + { + canvasManager.setPetUIDisplayed(true); + } void Update() { @@ -74,5 +74,6 @@ public class PetHealth : MonoBehaviour enemyMovement.petExist = false; } } + canvasManager.setPetUIDisplayed(false); } } -- GitLab