public void Hit(float amount) { mCurrentHP -= amount; //Show HPBar if (mHPBar == null) { mHPBar = GaugeBarPool.Instance.GetFromPool(); } if (mCurrentHP <= 0) { mState = eEnemyState.Die; mDelayCount = 0; mController.AddCoin(mReward); mHPBar.gameObject.SetActive(false); mHPBar = null; TextEffect textEffect = mController.GetTextEffect(); textEffect.ShowText(mReward); textEffect.transform.position = mHPBarPos.position;// 월드좌표 카메라 //textEffect.transform.position = Camera.main.WorldToScreenPoint(mHPBarPos.position);// 오버레이일때 tag가 MainCamera돼어야 Camera.가능 //text effect } else { mHPBar.SetGauge(mCurrentHP, mMaxHP); mHPBar.transform.position = mHPBarPos.position; // 위치 변경하려면 Update에 넣으면됨. } }
// Start is called before the first frame update void Start() { HPBar = HPBarPool.GetFromPool(); mCurrentHP = MaxHP; HPBar.ShowGauge(mCurrentHP, MaxHP); mRB2D = GetComponent <Rigidbody2D>(); mAnim = GetComponent <Animator>(); mState = eEnemyState.Idle; StartCoroutine(AI()); }
public GaugeBar GetFromPool() { for (int i = 0; i < Pool.Count; i++) { if (!Pool[i].gameObject.activeInHierarchy) { Pool[i].gameObject.SetActive(true); return(Pool[i]); } } GaugeBar newObj = Instantiate(Origin, OriginParents); //GaugeBar newObj = Instantiate(Origin); //newObj.transform.SetParent(OriginParents); //newObj.transform.localScale = new Vector3(1, 1, 1); //newObj.transform.position = Vector3.zero; Pool.Add(newObj); return(newObj); }
private IEnumerator DelayGaugeCoroutine(GaugeBar gauge) { WaitForSeconds ws = new WaitForSeconds(0.5f); while (true) { if (gauge.curValue > gauge.delayValue) { gauge.delayValue++; } else if (gauge.curValue < gauge.delayValue) { gauge.delayValue--; } else { yield break; } gauge.delayGauge.fillAmount = (float)gauge.delayValue / gauge.maxValue; yield return(ws); } }
public void Hit(float value) { mCurrentHP -= value; mHPBar = mBoltPool.EnemyHPBarPool.GetFromPool(); mHPBar.transform.position = mHPBarPos.position; if (mCurrentHP <= 0) { if (mEffectpool == null) { mEffectpool = GameObject.FindGameObjectWithTag("EffectPool"). GetComponent <EffectPool>(); } Timer effect = mEffectpool.GetFromPool((int)eEffecttype.Enmey); effect.transform.position = transform.position; mSoundController.PlayEffectSound((int)eSoundType.ExpEnem); mGameController.AddScore(10); mHPBar.gameObject.SetActive(false); mHPBar = null; gameObject.SetActive(false); } }