using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class MTest : MonoBehaviour
{
public GameObject m_rotateObj;
private readonly static float m_rotateSpeed = 0.4f;
private void Awake()
{
RotationModle();
}
/// <summary>
/// 添加旋转事件
/// </summary>
private void RotationModle()
{
//添加拖动旋转
var graphic = m_rotateObj.GetComponent<Graphic>();
if (graphic != null && graphic.raycastTarget)
{
var trigger = m_rotateObj.AddComponent<EventTrigger>();
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = EventTriggerType.Drag;
entry.callback = new EventTrigger.TriggerEvent();
entry.callback.AddListener(TriggerOnDrag);
trigger.triggers.Add(entry);
}
}
/// <summary>
/// 旋转事件
/// </summary>
/// <param name="arg0"></param>
private void TriggerOnDrag(BaseEventData arg0)
{
if (m_rotateObj == null)
{
return;
}
var pointerEventData = (PointerEventData)arg0;
var rot = Quaternion.Euler(0, -pointerEventData.delta.x * m_rotateSpeed, 0);
m_rotateObj.transform.forward = rot * m_rotateObj.transform.forward;
}
Unity UI 객체 회전 이벤트
추천
출처blog.csdn.net/weixin_47819574/article/details/129493195
추천
행