void Update() { if (isStart) { Manager.GameManager.INSTANCE.SFXPlay(_audio, _sfx[0]); isStart = false; } if (IsLive && !IsAttack && !IsStun && player.IsLive) { float dis = Vector3.Distance(this.transform.position, TargetTr.position); //달리기 범위 if (dis > RunDis) { EnemyRun(TargetTr); } //공격 범위보다 멀리 있을때 타겟 추적 else if (dis > AttackDis && dis <= RunDis) { EnemyMove(TargetTr); //목적지를 세팅 해주고 이동 시킨다 } else if (dis <= AttackDis) { if (!IsAttack) { Manager.GameManager.INSTANCE.SFXPlay(EnemyWeapone._Audio, EnemyWeapone._Sfx[Random.Range(0, EnemyWeapone._Sfx.Length)]); StartCoroutine(EnemyWeapone.EnemyAttack(this)); } } AniCtrl.AniWalk(IsWalk); AniCtrl.AniRun(IsRun); } if (!IsLive) { DropItem(); if (questBoss != null) { if (isBoss) { questBoss.BossDown(); } if (isSubBoss) { questBoss.SubQuestBossDown(); } } } }
public override void Progress() { CheckGround(); _acceleration = _isGround ? _walkAcceleration : _airAcceleration; _deceleration = _isGround ? _groundDeceleration : 0; _rigid2D.velocity = new Vector2(_velocity.x, _rigid2D.velocity.y); AniCtrl.PlayAni(CurAniState); }
void Update() { if (IsLive && !IsAttack && !IsStun && player.IsLive) { float dis = Vector3.Distance(this.transform.position, TargetTr.position); //공격 범위보다 멀리 있을때 타겟 추적 if (dis > AttackDis) { EnemyMove(TargetTr); //목적지를 세팅 해주고 이동 시킨다 } if (dis <= AttackDis) { if (!IsAttack) { MagicRandum(); StartCoroutine(EnemyWeapone.EnemyAttack(this)); } } AniCtrl.AniWalk(IsWalk); AniCtrl.AniRun(IsRun); } if (!IsLive) { DropItem(); if (questBoss != null) { if (isBoss) { questBoss.BossDown(); } if (isSubBoss) { questBoss.SubQuestBossDown(); } } } }
bool isTeleport = false; //플레이어에게 순간 이동 //protected override void Start() //{ // base.Start(); // //if (hpUi != null) // //{ // // hpUi.UiAct(); // // hpUi.HPFill(NHp, NMaxHp); // //} //} private void Update() { if (IsLive && !IsAttack && !IsStun && player.IsLive) { if (hpUi != null) { hpUi.UiAct(); hpUi.HPFill(NHp, NMaxHp); } //플레이어와의 거리 float dis = Vector3.Distance(this.transform.position, TargetTr.position); //HP에 따른 헹동 if (NHp > (int)NMaxHp * 0.6f) //일반적인 AI와 같다 { //공격 범위보다 멀리 있을때 타겟 추적 if (dis > AttackDis) { EnemyMove(TargetTr); //목적지를 세팅 해주고 이동 시킨다 } if (dis <= AttackDis) { if (!IsAttack) { EnemyWeapone.BulletType = Manager.eProjectilesType.FireBall; //파이어 볼 공격 StartCoroutine(EnemyWeapone.EnemyAttack(this)); } } } else if (NHp <= (int)NMaxHp * 0.6f && NHp > (int)NMaxHp * 0.3f) { //공격 범위보다 멀리 있을때 타겟 추적 if (dis > AttackDis) { StartCoroutine(Teleport()); } if (dis <= AttackDis) { if (!IsAttack) { EnemyWeapone.BulletType = Manager.eProjectilesType.FireBall; //파이어 볼 공격 StartCoroutine(EnemyWeapone.EnemyAttack(this, 0.5f)); } } } else if (NHp <= (int)NMaxHp * 0.3f) { //공격 범위보다 멀리 있을때 타겟 추적 if (dis > AttackDis) { StartCoroutine(Teleport()); } if (dis <= AttackDis) { if (!IsAttack) { EnemyWeapone.BulletType = Manager.eProjectilesType.FireBall; //파이어 볼 공격 StartCoroutine(EnemyWeapone.EnemyAttack(this, 0.3f)); } } } AniCtrl.AniWalk(IsWalk); AniCtrl.AniRun(IsRun); } if (!IsLive) { DropItem(); if (questBoss != null) { if (isBoss) { questBoss.BossDown(); } if (isSubBoss) { questBoss.SubQuestBossDown(); } } } }
public void DestroyState() { AniCtrl.PlayAni(shadowAniState); isControlAble = false; }
public void ControlRecovery() { AniCtrl.PlayAni(shadowAniState); isControlAble = false; }
public void OutOfControl() { Debug.Log("ASDASDSA"); AniCtrl.PlayAni(shadowAniState); isControlAble = false; }
public void Skill1() { OnSkill1StartStateAction?.Invoke(); AniCtrl.PlayAni(shadowAniState); isControlAble = false; }
public override void Idle() { AniCtrl.PlayAni(_playerUnit.CurAniState); isControlAble = true; }
public void Resurrection() { AniCtrl.PlayAni(shadowAniState); isControlAble = false; }