UGUI에서 마약에 대해서 조금 더 자세히 설명해 드릴게요.

6063 단어 uGUIsUnity

실현을 해보도록 하겠습니다.


Hierarchy



Canvas를 추가했고 그 밑에 Image를 넣었어요.

Script


TestDrag.cs
using UnityEngine;
using UnityEngine.EventSystems;

public class TestDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
    // ドラックが開始したとき呼ばれる.
    public void OnBeginDrag(PointerEventData eventData)
    {
        Debug.Log(1);

    }

    // ドラック中に呼ばれる.
    public void OnDrag(PointerEventData eventData)
    {
        Debug.Log(2);
    }

    // ドラックが終了したとき呼ばれる.
    public void OnEndDrag(PointerEventData eventData)
    {
        Debug.Log(3);
    }
}
이런 느낌.
포인트는 이비긴드래그핸들러, 아이드래그핸들러, 아이언드래그핸들러 3개 인터페이스를 계승하는 것이다.
IEndDragHandler만 물려받아 해봤는데 반응이 없어서 살짝 박아놨어요.
어쨌든 핸들러 계열 3개만 물려받으면 된다.
나는 이것을 Image에 부쳤다.

Game



흰색 그림을 드래그하면 로그가 나타납니다!

아는 것이 좋다


Drag Threshold



이동 시간 후 드래그 앤 드롭을 설정할 수 있습니다.

화면 좌표의 이전 프레임에서 온 이동량 이벤트 데이터입니다.delt

    // ドラックが終了したとき呼ばれる.
    public void OnEndDrag(PointerEventData eventData)
    {
        Debug.Log(eventData.delta);
    }
On EndDrag에서 얼마나 많은 양을 끌어당겼는지 자주 사용한다.
eventData.델타를 사용할 수 있습니다.반환 값은 Vector2입니다.
문서를 봐도 잘 모르겠지만'화면 좌표에 있는 이전 프레임의 이동량'을 나타내는 것 같다.
빠르게 움직일 때 값이 많아지는 셈이다.
  • 왼쪽으로 가볍게 누르기(-10.00.0), x의 마이너스
  • 오른쪽 반대
  • 위에서 살짝 하면 (0.010.0) Y의 플러스
  • 아래 반대
  • 페이지를 드래그해서 전환할 수 있습니다.
    한 5 정도 적당할 것 같아요.

    eventData.button

        // ドラックが開始したとき呼ばれる.
        public void OnBeginDrag(PointerEventData eventData)
        {
            Debug.Log(eventData.button);
            if (eventData.button != PointerEventData.InputButton.Left) return;
    
        }
    
    여기 button은 InputButon 열거형입니다.Left, Right, Middle이 있습니다.
    기본적으로 컴퓨터만 있는데 마우스 등으로'왼쪽 단추를 누르고 끌어당기기'를 하면'레프트'가 답한다.
    실용성, Left 이외의 리턴은 기다리면 되죠.

    좌표를 로컬 좌표로 변환

    Vector2 localPos = Vector2.zero;
    RectTransformUtility.ScreenPointToLocalPointInRectangle(
        GetComponent<RectTransform>(),
        eventData.position,
        Camera.main,
        out localPos
    );
    
    Canvas의 Render Mode가 "Screen Space-Camera"인 경우 위에서 설명한 localPos 값으로 변환됩니다.
    나는 아직 알아야 할 일을 잘 모르지만 알면 곧 추기한다.

    좋은 웹페이지 즐겨찾기