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;
    }
Exemple #2
0
    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;
    }