IEnumerator PushPool() { yield return(new WaitForSeconds(2.0f)); DestoryEffect(); //mp, hp 회복구 //MpSphere.SetActive(true); float mpx = transform.position.x + Random.Range(-2, 2); float mpz = transform.position.z + Random.Range(-2, 2); float hpx = transform.position.x + Random.Range(-2, 2); float hpz = transform.position.z + Random.Range(-2, 2); GameObject MpSphere_ = (GameObject)Instantiate(MpSphere, new Vector3(mpx, MpSphere.transform.position.y, mpz), Quaternion.identity); MpSphere_.name = "MpSphere"; GameObject HpSphere_ = (GameObject)Instantiate(HpSphere, new Vector3(hpx, HpSphere.transform.position.y, hpz), Quaternion.identity); HpSphere_.name = "HpSphere"; yield return(new WaitForSeconds(1.0f)); isDie = false; thisState = SkelState.idle; thisCanvas.enabled = true; hpBar.fillAmount = 1.0f; Hp = 100; GetComponent <CapsuleCollider>().enabled = true; gameObject.SetActive(false); }
// Use this for initialization void Start() { currentState = neutralState; #region distanceFromTarget = 7f; player = GameObject.FindGameObjectWithTag("Player").gameObject; combatManager = GameObject.FindGameObjectWithTag("CombatManager").gameObject; #endregion }
void Die()//캔버스 , hp 초기화, 내비게이션 초기화 { thisState = SkelState.die; isDie = true; Ani.SetBool("IsTrace", false); Ani.SetTrigger("IsDie"); thisCanvas.enabled = false; GetComponent <CapsuleCollider>().enabled = false; Navi.isStopped = true; StopAllCoroutines(); StartCoroutine(PushPool()); }
IEnumerator SkelStateCheck() { while (!isDie) { yield return(new WaitForSeconds(0.2f)); float dist = Vector3.Distance(PlayerTr.position, SkeletonTr.position); if (dist <= attackdist) { thisState = SkelState.attack; } else if (dist <= tracedist && dist > attackdist) { thisState = SkelState.trace; } else { thisState = SkelState.idle; } } }