public DestroybleItem(GameObject gameObject) : base(gameObject) { destroybleObject = gameObject.GetComponent <DestroybleObject>(); parent = gameObject.transform.parent; if (destroybleObject != null) { destroyObj = destroybleObject.enabled; hp = destroybleObject.Hp; } }
void Start() { pause = false; DestroybleObject playerFireObj = player.GetComponent <DestroybleObject>(); //clculate hp image fill amount hpImage.fillAmount = playerFireObj.Hp / Constants.playerLifeMax; //add new listaner to player hp change event playerFireObj.OnChangeHp += () => { //update image hpImage.fillAmount = playerFireObj.Hp / Constants.playerLifeMax; }; //get player jetpack JetPack jetPack = player.GetComponent <CharacterMotor>().jetPack; //clculate jetpack slider size jetPackSlider.size = jetPack.Gas / Constants.jetPackMax; //add new listaner to jetpack use event jetPack.OnUseJetPack += () => { jetPackSlider.handleRect.gameObject.SetActive(jetPack.Gas != 0); jetPackSlider.size = jetPack.Gas / Constants.jetPackMax; }; //add new listaner to player hp change event playerFireObj.OnChangeHp += () => { if (playerFireObj.Hp <= 0 && !missionComplete) { gameOverPanel.GetComponent <Animator>().SetTrigger("Move"); } crystalsResult.text = crystals.text; }; DestroybleObject bossDestr = boss.GetComponent <DestroybleObject>(); //add new listaner to boss hp change event bossDestr.OnChangeHp += () => { if (playerFireObj.Hp != 0 && bossDestr.Hp <= 0) { missionComplete = true; winPanel.GetComponent <Animator>().SetTrigger("Move"); crystalsResultWin.text = crystals.text; } }; Application.targetFrameRate = 60; //StartCoroutine(UpdateEnemiesCount()); }
/// <summary> /// puts any object who have DestroybleObject to pool /// </summary> /// <param name="character"></param> public void ReturnCharacterToPool(GameObject character) { character.SetActive(false); DestroybleObject destrObj = character.GetComponent <DestroybleObject>(); if (destrObj) { destrObj.enabled = false; } character.transform.position = myTransform.position; character.transform.parent = myTransform; characters.Enqueue(character); }