Пример #1
0
        public override void OnDie()
        {
            base.OnDie();

            // 체력표시용 UI들 비활성화!
            if (this.unitStatusBar != null)
            {
                ObjectPoolManager.inst.Return(this.unitStatusBar.gameObject);
            }

            if (this.bossStatusBar != null)
            {
                this.bossStatusBar.gameObject.SetActive(false);
            }

            this.unitStatusBar = null;
            this.bossStatusBar = null;

            // 그룹에 등록되어 있을 경우, 그룹에서 제외한다
            if (!string.IsNullOrEmpty(this.aggroGroupKey))
            {
                _aggroGroups[this.aggroGroupKey].Remove(this);
            }
        }
Пример #2
0
        /// <summary>
        /// 유닛 상태 바를 생성한다
        /// </summary>
        protected virtual void InitStatusBar()
        {
            if (!this.unit.isBoss)
            {
                ////////////////////////////////////////
                // 일반 유닛용 스테이터스 바 생성
                if (this.unitStatusBar == null)
                {
                    this.unitStatusBar = ObjectPoolManager.inst.Get <UI.UnitStatusBar>(PrefabPath.UI.UnitStatusBar);
                }

                // Transform 지정
                this.unitStatusBar.transform.SetParent(this.unit.pivots.overhead);

                RectTransform rt = this.unitStatusBar.transform as RectTransform;

                rt.anchoredPosition3D = Vector3.zero;
                rt.localRotation      = Quaternion.identity;
                rt.sizeDelta          = new Vector2(300 * this.unit.radius * 2, rt.sizeDelta.y);
                rt.localScale         = Vector3.one * 0.01f;

                this.unitStatusBar.Init(this.unit);
            }
        }