private IEnumerator MeleeAttack() { IsAttack = true; IsChase = false; yield return(new WaitForSeconds(0.25f)); Ani.SetBool("isAttack", true); yield return(new WaitForSeconds(0.15f)); AttackObject attack = GameManager.Instance.Pooling.GetAttackObject(PoolManager.AttackObjectList.MonsterMeleeAttack); attack.transform.SetParent(transform); attack.transform.localPosition = Vector3.zero; attack.transform.rotation = transform.rotation; var attackInfo = new AttackInfo(this, Atk * MeleeAttackDamage, 0, "Player", transform.position, int.MaxValue, (HitInfo info) => { GameManager.Instance.Effect.HitEffect(info.HitUnit.transform.position); }); attack.SetAttackInfo(attackInfo, AttackObject.IgnoreType.IgnoreWallAndFloor); attack.SetTimer(0.25f, InstantObject.TimerAction.Destory); yield return(new WaitForSeconds(1.85f)); //공격 후딜레이 yield return(new WaitForSeconds(0.25f)); Ani.SetBool("isAttack", false); IsAttack = false; IsChase = true; }
private IEnumerator Shot() { IsAttack = true; IsChase = false; Ani.SetBool("isAttack", true); yield return(new WaitForSeconds(0.4f)); AttackObject missile = GameManager.Instance.Pooling.GetAttackObject(PoolManager.AttackObjectList.Missile); missile.transform.position = transform.position; missile.transform.rotation = transform.rotation; var attackInfo = new AttackInfo(this, Atk * MissileDamage, 0, "Player", transform.position, 1, (HitInfo info) => { GameManager.Instance.Effect.ExplosionEffect(info.HitPosition + Vector3.up * 2); }); missile.SetAttackInfo(attackInfo); missile.BulletFire(MissileSpeed, MissileRange); yield return(new WaitForSeconds(0.7f)); //공격 후딜레이 yield return(new WaitForSeconds(1f)); Ani.SetBool("isAttack", false); IsAttack = false; IsChase = true; }