unity 鼠标控制 旋转移动缩放
时间: 2023-08-09 20:09:03 浏览: 265
要实现在 Unity 中使用鼠标控制物体的旋转、移动和缩放,你可以使用以下示例代码:
```csharp
using UnityEngine;
public class MouseControl : MonoBehaviour
{
private Vector3 mouseOrigin;
private bool isRotating;
private bool isMoving;
private bool isScaling;
void Update()
{
// 鼠标右键按下时旋转物体
if (Input.GetMouseButtonDown(1))
{
mouseOrigin = Input.mousePosition;
isRotating = true;
}
// 鼠标右键松开时停止旋转
if (Input.GetMouseButtonUp(1))
{
isRotating = false;
}
// 鼠标中键按下时移动物体
if (Input.GetMouseButtonDown(2))
{
mouseOrigin = Input.mousePosition;
isMoving = true;
}
// 鼠标中键松开时停止移动
if (Input.GetMouseButtonUp(2))
{
isMoving = false;
}
// 鼠标滚轮滚动时缩放物体
float scroll = Input.GetAxis("Mouse ScrollWheel");
if (scroll != 0f)
{
isScaling = true;
}
else
{
isScaling = false;
}
if (isRotating)
{
// 根据鼠标的移动来旋转物体
Vector3 mouseOffset = (Input.mousePosition - mouseOrigin) * 0.1f;
transform.Rotate(mouseOffset.y, -mouseOffset.x, 0, Space.World);
mouseOrigin = Input.mousePosition;
}
if (isMoving)
{
// 根据鼠标的移动来移动物体
Vector3 mouseOffset = (Input.mousePosition - mouseOrigin) * 0.01f;
transform.Translate(mouseOffset.x, mouseOffset.y, 0, Space.World);
mouseOrigin = Input.mousePosition;
}
if (isScaling)
{
// 根据鼠标滚轮的滚动来缩放物体
float scaleAmount = 1f + scroll;
transform.localScale *= scaleAmount;
}
}
}
```
将以上代码添加到一个物体上,然后在场景中将需要控制的物体作为该物体的子物体。在运行游戏时,你可以使用鼠标右键来旋转物体,使用鼠标中键来移动物体,使用鼠标滚轮来缩放物体。
阅读全文