UGUI 스크롤 휠은 마우스 위치를 중심으로 이미지를 확대/축소합니다.

1356 단어 Unity3D
그림의 중심점을 마우스 위치로 수정합니다. 이 부분은 마우스와 원 중심점의 거리와 그림 크기의 비율을 통해 중심점이 이동할 거리를 계산한 다음 마우스와 원 중심점의 거리에 따라 그림 좌표를 변경합니다.
코드:
using UnityEngine;

public class Test: MonoBehaviour {

    public void ScrollEvent()
    {
        float delX = Input.mousePosition.x - transform.position.x;
        float delY = Input.mousePosition.y - transform.position.y;

        float scaleX = delX / GetComponent().rect.width / transform.localScale.x;
        float scaleY = delY / GetComponent().rect.height / transform.localScale.y;

        if (Input.GetAxis("Mouse ScrollWheel") > 0)
        {
            transform.localScale += Vector3.one * 0.1f;
        }
        else if (Input.GetAxis("Mouse ScrollWheel") < 0)
        {
            transform.localScale += Vector3.one * -0.1f;
        }

        GetComponent().pivot += new Vector2(scaleX, scaleY);
        transform.position += new Vector3(delX, delY, 0);
    }
}

휠 이벤트:
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;

public class ScrollEvent: MonoBehaviour , IScrollHandler
{
    public UnityEvent scroll = new UnityEvent();

    public void OnScroll(PointerEventData eventData)
    {
        scroll.Invoke();
    }
}

좋은 웹페이지 즐겨찾기