unity在UI上拖拽旋转物体_笔记

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;
    }
}


猜你喜欢

转载自blog.csdn.net/huojiweigb/article/details/128408251