1. 将下面脚本挂载在可拖动范围的UI上
2. 将需要旋转的物体拖入m_WeaponModel
3. 运行即可
附上代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class OnDragControl : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public GameObject m_WeaponModel;//旋转的物体
private float axisX;
private Vector3 startPos;
private Vector3 nowPos;
private Vector3 latePos;
public void OnBeginDrag(PointerEventData eventData)
{
startPos = Input.mousePosition;
}
public void OnDrag(PointerEventData eventData)
{
nowPos = Input.mousePosition;
if (nowPos != startPos)
{
if (nowPos != latePos)
{
axisX = -(nowPos.x - startPos.x) * Time.deltaTime * 5;
}
else
{
axisX = 0;
}
}
else
{
axisX = 0;
}
if (ShopPanel.instance.m_WeaponInfoPanelObj.activeInHierarchy)
{
m_WeaponModel.transform.Rotate(new Vector3(0, axisX, 0), Space.World);
}
startPos = Input.mousePosition;
}
public void OnEndDrag(PointerEventData eventData)
{
axisX = 0;
latePos = Input.mousePosition;
}
}