unity 点击物体 摄像头自动移动到物体跟前
时间: 2023-09-21 15:06:59 浏览: 168
要实现这个功能,你需要编写一个脚本并将其附加到你的摄像头上。以下是一个简单的脚本示例:
```
using UnityEngine;
public class MoveCameraToObject : MonoBehaviour
{
public GameObject targetObject;
public float moveSpeed = 5f;
private bool isMoving = false;
private Vector3 targetPosition;
void Update()
{
if (isMoving)
{
transform.position = Vector3.Lerp(transform.position, targetPosition, moveSpeed * Time.deltaTime);
if (transform.position == targetPosition)
{
isMoving = false;
}
}
}
public void MoveToTargetObject()
{
if (targetObject != null)
{
targetPosition = targetObject.transform.position;
isMoving = true;
}
}
}
```
这个脚本有一个公共变量 `targetObject`,它是你想要移动到的物体。还有一个公共变量 `moveSpeed`,它控制了摄像头移动的速度。在脚本中,我们使用 `Lerp` 函数来平滑地将摄像头移动到目标位置。当摄像头到达目标位置时,我们将 `isMoving` 设置为 `false`,停止移动。
在你的场景中,你需要将这个脚本附加到你的摄像头上。然后,你可以在你的物体上添加一个 `OnClick` 事件,并将 `MoveCameraToObject` 脚本中的 `MoveToTargetObject` 函数与该事件关联。这样,当你点击该物体时,摄像头将自动移动到该物体的位置。
请注意,这个脚本只是一个简单的示例,可能需要根据你的具体需求进行修改。例如,你可能需要添加一些额外的逻辑来控制摄像头的旋转或缩放。
阅读全文