public void Npc_Move(Vector3 vector) { m_AnimatorManager.RoleMoveCtrl(); if (m_AnimatorManager.GetRotation()) { //移动; Vector3 directionVector = vector - this.transform.position; Vector3 forwardVector = this.transform.forward.normalized; forwardVector -= new Vector3(0, forwardVector.y, 0); this.transform.forward = Vector3.Lerp(forwardVector, directionVector, 0.3f); } }
void PlayMove(float x, float y, float degrees) { if (Mathf.Approximately(x, 0.0f) && Mathf.Approximately(y, 0.0f)) { return; } m_AnimatorManager.RoleMoveCtrl(); Vector3 q = this.transform.localEulerAngles; q.y = 90 - degrees; Quaternion to = Quaternion.Euler(q); m_AnimatorManager.SetRotation(to); }
void Update() { if (Obj == null) { return; } if (!mCanMove) { return; } Obj.mPosition = Obj.mGameObject.transform.position; if (Obj is CRoleObject) { RangeTools.MotifyRoleAoi(); return; } if (!mTargetPos.Equals(Vector3.zero)) { if (mMoveTarget != null) { mTargetPos = mMoveTarget.mPosition; } if (UtilTools.Vec2Distance(mObj.mPosition, mTargetPos) > mTargetDistance) { Vector3 dir = UtilTools.Vec3Direction(mTargetPos, mObj.mPosition); mAnimatorManager.SetRotation(dir); mAnimatorManager.RoleMoveCtrl(); } else { mTargetPos = Vector3.zero; if (mOnArrive != null) { mOnArrive(); } } } }