1. 程式人生 > >Unity ——UGUI 通過搖桿控制角色移動

Unity ——UGUI 通過搖桿控制角色移動

  測試結束後,大家就會對這些介面方法有一些初步的瞭解。
using UnityEngine;
using UnityEngine.EventSystems;

// UGUI提供了一些用來操作控制元件的一些方法, 這些方法是以回撥的形式提供的
// 通過介面回撥來實現的
/*
 * IPointerEnterHandler     void OnPointerEnter(PointerEventData eventData)
 * IPointerExitHandler      void OnPointerExit(PointerEventData eventData)
 * 
 * IPointerDownHandler      void OnPointerDown(PointerEventData eventData)
 * IPointerUpHandler        void OnPointerUp(PointerEventData eventData)
 * IPointerClickHandler     void OnPointerClick(PointerEventData eventData)
 * 
 * IBeginDragHandler        void OnBeginDrag(PointerEventData eventData)
 * IDragHandler             void OnDrag(PointerEventData eventData)
 * IEndDragHandler          void OnEndDrag(PointerEventData eventData)
 */


public class UGUICallBack : MonoBehaviour,
    IPointerEnterHandler, IPointerExitHandler,
    IPointerDownHandler, IPointerUpHandler, IPointerClickHandler,
    IBeginDragHandler, IDragHandler, IEndDragHandler 
{

    /// <summary>
    /// 當滑鼠滑入控制元件的範圍
    /// </summary>
    /// <param name="eventData"></param>
    public void OnPointerEnter(PointerEventData eventData) {
        Debug.Log("滑鼠劃入");
    }

    /// <summary>
    /// 當滑鼠離開控制元件的範圍
    /// </summary>
    /// <param name="eventData"></param>
    public void OnPointerExit(PointerEventData eventData) {
        Debug.Log("滑鼠離開");
    }

    /// <summary>
    /// 當滑鼠在控制元件範圍內按下
    /// </summary>
    /// <param name="eventData"></param>
    public void OnPointerDown(PointerEventData eventData) {
        Debug.Log("滑鼠按下");
    }

    /// <summary>
    /// 當滑鼠在控制元件範圍內擡起
    /// </summary>
    /// <param name="eventData"></param>
    public void OnPointerUp(PointerEventData eventData) {
        Debug.Log("滑鼠擡起");
    }

    /// <summary>
    /// 當滑鼠在控制元件範圍內點選
    /// </summary>
    /// <param name="eventData"></param>
    public void OnPointerClick(PointerEventData eventData) {
        Debug.Log("滑鼠點選");
    }

    /// <summary>
    /// 當滑鼠開始拖拽
    /// </summary>
    /// <param name="eventData"></param>
    public void OnBeginDrag(PointerEventData eventData) {
        Debug.Log("開始拖拽");
    }

    /// <summary>
    /// 當滑鼠拖拽過程中
    /// </summary>
    /// <param name="eventData"></param>
    public void OnDrag(PointerEventData eventData) {
        Debug.Log("拖拽中");
    }

    /// <summary>
    /// 當拖拽完成
    /// </summary>
    /// <param name="eventData"></param>
    public void OnEndDrag(PointerEventData eventData) {
        Debug.Log("拖拽完成");
    }
}