2016年6月8日 星期三

Unity內偵測有否點擊到UGUI作出來的介面

Unity現在可使用方便的UGUI功能作介面,而當要操控2D介面或是作3D物件控制時,都是使用滑鼠左鍵;所以一般邏輯為當滑鼠初次點擊在2D介面上時,就不會啟動3D物件控制功能,因此需要偵測滑鼠是否點擊在任何UGUI作出來的2D介面上。

UGUI在創建時,會自動在【Hierarchy】下產生Canvas』和EventSystem』兩個物件,EventSystem』便是用來處理點擊等事件的存在,所以會使用它來得知是否有滑鼠點擊任何UGUI物件,並可取得所點擊的介面物件。


using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;

public class MainProcess : MonoBehaviour {

    void Update ()
    {
        if( Input.GetMouseButtonDown( 0 ) )
        {
            if( EventSystem.current.IsPointerOverGameObject() )
            {
                Debug.Log( "有介面被點擊到!" );
                Debug.Log( EventSystem.current.currentSelectedGameObject );
            }
        }
    }
}

沒有留言:

張貼留言