- 首先,需要在所需的脚本中声明所需的变量。包括物体的位置、鼠标位置、半径、旋转速度等。
- 然后需要在 Update () 函数中检测鼠标位置,如果鼠标移动,则计算物体新位置。
- 这里我们可以使用 Vector3.Lerp() 函数实现移动过程。该函数接受三个参数:开始位置、结束位置和移动的百分比。我们可以使用 Mathf.Clamp() 函数限制百分比值的范围。
- 最后,使用 Transform.RotateAround() 函数实现物体绕另一个物体的轨道移动。
示例代码如下:
public Transform orbitTarget;
public float orbitRadius = 5f;
public float orbitSpeed = 10f;
private Vector3 mousePos;
void Update()
{
if (Input.GetMouseButton(0))
{
float x = Input.GetAxis("Mouse X");
float y = Input.GetAxis("Mouse Y");
mousePos = new Vector3(x, y, 0f);
}
float clampedX = Mathf.Clamp(mousePos.x, -1f, 1f);
float clampedY = Mathf.Clamp(mousePos.y, -1f, 1f);
Vector3 targetPos = orbitTarget.position + new Vector3(clampedX, clampedY, 0f) * orbitRadius;
transform.position = Vector3.Lerp(transform.position, targetPos, orbitSpeed * Time.deltaTime);
transform.RotateAround(orbitTarget.position, Vector3.up, orbitSpeed * Time.deltaTime);
}