unity 通过查找标签 找到后点击鼠标左键能够旋转物体
时间: 2023-08-11 14:08:43 浏览: 47
您可以通过以下脚本实现此功能:
```csharp
using UnityEngine;
public class RotateOnMouseClick : MonoBehaviour
{
public string targetTag = "Target"; // 要查找的标签
public float rotationSpeed = 10.0f; // 旋转速度
private bool isRotating = false; // 是否正在旋转
private Vector3 lastMousePosition; // 上一次鼠标位置
void Update()
{
if (Input.GetMouseButtonDown(0)) // 当鼠标左键按下
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit) && hit.collider.gameObject.CompareTag(targetTag)) // 如果点击到目标物体
{
isRotating = true;
lastMousePosition = Input.mousePosition;
}
}
if (Input.GetMouseButtonUp(0)) // 当鼠标左键抬起
{
isRotating = false;
}
if (isRotating) // 如果正在旋转
{
Vector3 deltaMousePosition = Input.mousePosition - lastMousePosition; // 计算鼠标位置变化
transform.Rotate(Vector3.up, deltaMousePosition.x * rotationSpeed * Time.deltaTime); // 绕 y 轴旋转
transform.Rotate(Vector3.left, deltaMousePosition.y * rotationSpeed * Time.deltaTime); // 绕 x 轴旋转
lastMousePosition = Input.mousePosition;
}
}
}
```
将此脚本添加到您想要旋转的物体上,并将“Target”设置为您要查找的标签名称。您可以通过调整“rotationSpeed”参数来调整旋转速度。