物体中的子物体相对父物体坐标y轴从当前位置移动到目标点 c# unity 脚本放在子物体上
时间: 2024-12-11 12:36:36 浏览: 65
在Unity引擎中,如果你有一个游戏对象(父物体)和它的一个子物体,并想让子物体沿Y轴从当前位置移动到指定的目标位置,你可以使用`Vector3.Lerp`函数配合`Transform.position`属性来平滑地移动。假设你的脚本放在子物体上,可以参考下面的C#代码:
```csharp
using UnityEngine;
public class MoveAlongY : MonoBehaviour
{
// 子物体当前的位置
public Transform selfPosition;
// 目标位置
public Vector3 targetPosition;
// 移动速度,可以根据需要调整
public float moveSpeed = 1f;
private void Update()
{
// 计算从当前位置到目标位置的偏移量,沿着Y轴
Vector3 directionToMove = new Vector3(0f, targetPosition.y - selfPosition.position.y, 0f);
// 使用Lerp函数,每次更新时向目标方向移动moveSpeed的距离
selfPosition.position = Vector3.Lerp(selfPosition.position, selfPosition.position + directionToMove * moveSpeed, Time.deltaTime);
// 当子物体到达目标位置时停止运动
if (Mathf.Approximately(selfPosition.position.y, targetPosition.y))
{
// 或者你也可以添加一些条件判断或停止动画等操作
Debug.Log("Target reached!");
selfPosition.position = targetPosition; // 立即停止
}
}
}
```
在这个脚本里,我们每帧都会计算子物体需要移动的方向,并逐步接近目标位置。当达到目标Y值时,我们会停止进一步移动。
阅读全文
相关推荐


















