unity3d 使人物在两点之间来回运动并且始终面向目标方向
时间: 2023-06-12 20:07:55 浏览: 119
你可以使用Unity中的动画控制器来达到这个效果。首先,你需要创建一个动画控制器。然后,你需要创建两个动画状态来表示人物向左移动和向右移动。接下来,你需要使用Animator组件将动画控制器连接到你的人物模型。
然后,你需要编写代码来控制人物的移动和面向目标方向。你可以使用Vector3.MoveTowards方法来控制人物的移动。你可以使用Transform.LookAt方法来使人物始终面向目标方向。
以下是一个示例代码:
```
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterMovement : MonoBehaviour
{
public Transform target1;
public Transform target2;
public float speed;
private Transform currentTarget;
private Animator animator;
void Start()
{
animator = GetComponent<Animator>();
currentTarget = target1;
}
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, currentTarget.position, speed * Time.deltaTime);
transform.LookAt(currentTarget);
if (transform.position == target1.position)
{
currentTarget = target2;
animator.SetBool("isMovingLeft", false);
animator.SetBool("isMovingRight", true);
}
else if (transform.position == target2.position)
{
currentTarget = target1;
animator.SetBool("isMovingLeft", true);
animator.SetBool("isMovingRight", false);
}
}
}
```
在上面的代码中,我们定义了两个目标点target1和target2,并且定义了一个速度变量speed。在Start函数中,我们初始化了动画控制器和当前目标点。在Update函数中,我们使用Vector3.MoveTowards方法来控制人物的移动,并且使用Transform.LookAt方法来使人物面向目标方向。我们还检查人物是否到达了当前目标点,并且切换目标点和设置动画状态。
阅读全文