Пример #1
0
    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에 넣으면됨.
        }
    }
Пример #2
0
    // 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());
    }
Пример #3
0
    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);
    }
Пример #4
0
    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);
        }
    }
Пример #5
0
    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);
        }
    }