ugui拖拽

2017-12-21  本文已影响23人  繁木成林
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class testfordrag : MonoBehaviour,IDragHandler,IPointerDownHandler,IPointerUpHandler,IEndDragHandler{

    public RectTransform canvas;
    private RectTransform textRect;
    Vector2 offset = new Vector2 ();

    void Start(){
        textRect = GetComponent<RectTransform> ();
    }
    public void OnPointerDown(PointerEventData eventData){
        Vector2 mouseDown = eventData.position;
        Vector2 mouseUguiPos = new Vector2 ();
        bool isRect = RectTransformUtility.ScreenPointToLocalPointInRectangle (canvas, mouseDown, eventData.enterEventCamera, out mouseUguiPos);
        if (isRect) {
            offset = textRect.anchoredPosition - mouseUguiPos;
        }
    }
    public void OnDrag(PointerEventData eventData)
    {
        Vector2 mouseDrag = eventData.position;
        Vector2 uguiPos = new Vector2 ();
        bool isRect = RectTransformUtility.ScreenPointToLocalPointInRectangle (canvas, mouseDrag, eventData.enterEventCamera, out uguiPos);
        if (isRect) {
            textRect.anchoredPosition = offset + uguiPos;
        }
    }
    public void OnPointerUp(PointerEventData eventData)
    {
        offset = Vector2.zero;
    }
    public void OnEndDrag(PointerEventData eventData)
    {
        offset = Vector2.zero;
    }
    void Update(){
        GetComponent<Text> ().text = GetComponentInParent<fighter> ().ShowCard ();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读