protected override void Update() { if (GetRemainHp() <= 0) { mState = SpiderWarriorStateEnum.Die; SpiderAnimator.SetTrigger("Die"); } if (mState == SpiderWarriorStateEnum.Idle) { if (mMoveToPoint != null) { mState = SpiderWarriorStateEnum.Move; } SpiderAnimator.SetFloat("Speed", 0); } else if (mState == SpiderWarriorStateEnum.Move) { if (mMoveToPoint != null) { Vector3 direction = mMoveToPoint.position - transform.position; direction.Normalize(); transform.forward = Vector3.Lerp(transform.forward, direction, 10 * Time.deltaTime); ChController.SimpleMove(transform.forward * MoveSpeed); Vector3 diff = mMoveToPoint.position - transform.position; float distance = diff.magnitude; if (distance <= 1f) { Transform nextPoint = CurrentPath.GetNextPoint(mMoveToPoint); mMoveToPoint = nextPoint; } SpiderAnimator.SetFloat("Speed", MoveSpeed); } else { mState = SpiderWarriorStateEnum.Idle; } } else if (mState == SpiderWarriorStateEnum.Die) { } }
protected override void Start() { mMoveToPoint = CurrentPath.GetNextPoint(null); mState = SpiderWarriorStateEnum.Idle; }