1.融合动画和使用动画的位移。同步寻路代理和角色的位置。
2.ik头部旋转。
3.鼠标点击移动到对应位置。
using
UnityEngine;
[
RequireComponent
(
typeof
(
NavMeshAgent
))]
[
RequireComponent
(
typeof
(
Animator
))]
public
class
LocomotionSimpleAgent
:
MonoBehaviour
{
Animator
anim;
NavMeshAgent
agent;
Vector2
smoothDeltaPosition =
Vector2
.zero;
Vector2
velocity =
Vector2
.zero;
void
Start () {
anim = GetComponent<
Animator
> ();
agent = GetComponent<
NavMeshAgent
> ();
agent.updatePosition =
false
;
}
void
Update () {
Vector3
worldDeltaPosition = agent.nextPosition - transform.position;
// Map 'worldDeltaPosition' to local space
float
dx =
Vector3
.Dot (transform.right, worldDeltaPosition);
float
dy =
Vector3
.Dot (transform.forward, worldDeltaPosition);
Vector2
deltaPosition =