Unity3D 한마디 코드로 UGUI 이미지 드래그
효과 프레젠테이션:
효과 시범
Tips:Show info 스크립트는 단지 필자가 마우스를 터치하는지 확인하기 위해 추가된 것일 뿐 쓸모가 없습니다
코드:
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class movePic : MonoBehaviour,IDragHandler ,IPointerDownHandler{
private RawImage img;
Vector3 offsetPos; // -
void Start()
{
img = GetComponent();// , RectTransform
}
public void OnDrag(PointerEventData eventData)
{
// , position
img.rectTransform.position = new Vector3(Mathf.Clamp(Input.mousePosition.x, 0, Screen.width), Mathf.Clamp(Input.mousePosition.y, 0, Screen.height), 0) + offsetPos;
}
public void OnPointerDown(PointerEventData eventData)
{
offsetPos = img.rectTransform.position - Input.mousePosition;
}
}
Tips:
using UnityEngine.EventSystem
IDragHandler
,IPointerDownHandler
를 계승하고 인터페이스의 실현에 이미지 이동 논리단순 확장
입력 상자의 배경으로 사용할 수 있으며, 입력 상자는 아름답고 실용적이다
특별히 관심을 가지다
상기 코드가 실현되는 전제는:Canvas-renderMode-ScreenSpaceOverlay를 실현하려면:Canvas-renderMode-Word Space 아래의 그림을 드래그하면 좌표 변환과 관련된 것도 간단합니다.
using System;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class MoveImage : MonoBehaviour, IDragHandler, IPointerDownHandler
{
private Image img;
Vector3 offsetPos; // -
Vector3 arragedPos; // ,
void Start()
{
img = GetComponent();// , RectTransform
}
public void OnDrag(PointerEventData eventData)
{
// , position
img.transform.position =Camera.main.ScreenToWorldPoint(new Vector3(Mathf.Clamp(Input.mousePosition.x, 0, Screen.width), Mathf.Clamp(Input.mousePosition.y, 0, Screen.height), 0) + offsetPos);
}
public void OnPointerDown(PointerEventData eventData)
{
offsetPos = Camera.main.WorldToScreenPoint(img.rectTransform.position) - Input.mousePosition;
}
}
Tips: 주의해 주세요.
Camera.main.WorldToScreenPoint
와 Camera.main.ScreenToWorldPoint
기타 실현 방식: UGUI 연구원에서 UI 서브노드가 Canvas에 있는 2D 좌표를 획득(12)라벨:Unity3d,UGUI,IDragHandler,IPointerDownHandler,그림 드래그,RectTransformUtility.ScreenPointToLocalPointInRectangle
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.