//脚本挂在旋转的图片上,CubeZ的坐标设置为(0,0,1),要将轴心点放在中间位置 using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.EventSystems; public class RotateIt : MonoBehaviour, IBeginDragHandler, IDragHandler { public GameObject RotateImg;//转盘 public GameObject CubeZ; Vector3 mous;//记录鼠标的坐标 Vector3 gameZ; void Start () { gameZ = CubeZ.transform.position;//记录下参考物体的坐标 } public void OnBeginDrag(PointerEventData eventData) { mous = Input.mousePosition;//记录开始拖拽时的鼠标坐标 CubeZ.transform.LookAt(mous);//看向鼠标的坐标 Debug.Log(mous); } public void OnDrag(PointerEventData eventData) { RotateImg.transform.Rotate(new Vector3(0, 0, -gameZ.z));//顺时针旋转
RotateImg.transform.Rotate(new Vector3(0, 0, gameZ.z));//逆时针旋转
Debug.Log(transform.position);
}
}
//参考物体 CubeZ的坐标
//脚本挂载位置
运行结果:
图片随鼠标绕轴心旋转