Unity は UI 上でオブジェクトをドラッグして回転します_Notes

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