示例#1
0
        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());
        }
示例#3
0
        /// <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);
        }