【发布时间】:2020-07-02 08:56:51
【问题描述】:
使用当前代码,NPC 将检测到并转向播放所需动画的玩家。但是,NPC 只会快速面对玩家,并且不会继续旋转,因为玩家在范围内时围绕 NPC 走动。
我想对此进行修改,以便 NPC 在玩家处于对撞机范围内时始终平稳地转向面对角色。我认为它可以在 void update 中做一些事情,但是由于当前的转函数在 onTriggerEnter 中,所以对于像我这样的初学者来说有点困惑。
public class helloTrigger : MonoBehaviour
{
public Animator anim;
public CharacterController player;
public Transform Player;
void Start()
{
player = GameObject.FindObjectOfType<CharacterController>();
anim = GetComponent<Animator>();
}
void OnTriggerEnter(Collider other)
{
if (other.tag != "Player") return;
anim.Play("Hello");
Vector3 lookAt = Player.position;
lookAt.y = transform.position.y;
transform.LookAt(lookAt);
}
void OnTriggerExit(Collider other)
{
if (other.tag == "Player")
{
anim.Play("Idle");
}
}
}
【问题讨论】:
-
如果您不打算使用
Update,请删除它。 Unity 在编译时创建一个对象列表以调用Update(如果已定义)。因此,当您不使用Update时,它会影响性能。