void ChangeStatus(EmMyStatus newStatus) { timer = 0f; curStatus = newStatus; switch (newStatus) { case EmMyStatus.Idle: actor.Idle(); statusDuration = Random.Range(0, aiConf.idlMaxDuration); break; case EmMyStatus.RandomMoveDirection: case EmMyStatus.RandomMoveDirectionAfterAttack: Vector3[] dirs = new Vector3[] { new Vector3(0, 0, 1), new Vector3(1, 0, 1), new Vector3(1, 0, 0), new Vector3(1, 0, -1), new Vector3(0, 0, -1), new Vector3(-1, 0, -1), new Vector3(-1, 0, 0), new Vector3(-1, 0, 1), }; randomMoveDir = dirs[Random.Range(0, 8)]; statusDuration = aiConf.moveMaxDuratoin; break; case EmMyStatus.MoveToTarget: break; case EmMyStatus.AttackPrepair: actor.Idle(); statusDuration = aiConf.attackPrepairDuration; break; case EmMyStatus.NormalAttack: curNormalAttack = 0; break; case EmMyStatus.CastSkill: actor.DoAttack(canCastSkillId); break; case EmMyStatus.BeAttacked: break; } }
void ChangeStatus(EmMyStatus newStatus) { timer = 0f; curStatus = newStatus; switch (newStatus) { case EmMyStatus.Idle: Actor.Idle(); statusDuration = FixedRandom.Range(0, idlMaxDuration); break; case EmMyStatus.RandomMoveDirection: case EmMyStatus.RandomMoveDirectionAfterAttack: Vector3[] dirs = new Vector3[] { new Vector3(0, 0, 1), new Vector3(1, 0, 1), new Vector3(1, 0, 0), new Vector3(1, 0, -1), new Vector3(0, 0, -1), new Vector3(-1, 0, -1), new Vector3(-1, 0, 0), new Vector3(-1, 0, 1), }; randomMoveDir = dirs[FixedRandom.Range(0, 8)]; randomMovePos = Actor.transform.position + randomMoveDir * 3; Actor.LookAt(randomMovePos); statusDuration = moveMaxDuratoin; break; case EmMyStatus.MoveToTarget: Actor.LookAt(attackTarget.transform.position); break; case EmMyStatus.AttackPrepair: Actor.Idle(); statusDuration = attackPrepairDuration; break; case EmMyStatus.NormalAttack: Actor.Attack(); break; case EmMyStatus.BeAttacked: break; } }