Unity3D计算角色与物体之间的距离来触发动画【脚本】
时间: 2024-03-17 08:39:53 浏览: 98
可以使用Unity3D中的Vector3.Distance()函数来计算角色与物体之间的距离。具体实现方法如下所示:
1. 在角色和物体之间添加一个触发器Trigger Collider,并将其设置为IsTrigger。
2. 在角色的脚本中添加以下代码:
```
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public Transform target; // 物体的Transform组件
private Animator anim;
void Start()
{
anim = GetComponent<Animator>();
}
void OnTriggerEnter(Collider other)
{
if (other.transform == target)
{
float distance = Vector3.Distance(transform.position, target.position);
if (distance < 2f) // 触发动画的距离
{
anim.SetTrigger("TriggerAnimation"); // 播放动画
}
}
}
}
```
3. 在物体的脚本中,将物体的Transform组件赋值给角色的脚本中的target变量:
```
using UnityEngine;
public class ObjectController : MonoBehaviour
{
public PlayerController player;
void Start()
{
player.target = transform;
}
}
```
这样,在角色进入物体的触发器范围内时,就会计算角色和物体之间的距离,如果距离小于指定值,则播放动画。
阅读全文