好比戰鬥場景,UI和3D場景同時都須要響應觸摸事件,若是同時響應可能就會出現觸摸UI的時候影響到了3D部分。爲了解決這個問題在判斷3D響應以前要先判斷手指是否點擊在UI上。 之前NGUI的時候都是本身來發送射線判斷,如今UGUI好了系統提供了更爲簡便的方法。this
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#if UNITY_ANDROID && !UNITY_EDITOR
#define ANDROID
#endif
#if UNITY_IPHONE && !UNITY_EDITOR
#define IPHONE
#endif
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using UnityEngine.EventSystems;
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start () {
}
void Update()
{
if (Input.GetMouseButtonDown(0)||(Input.touchCount >0 && Input.GetTouch(0).phase == TouchPhase.Began))
{
#if IPHONE || ANDROID
if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
#else
if (EventSystem.current.IsPointerOverGameObject())
#endif
Debug.Log("當前觸摸在UI上");
else
Debug.Log("當前沒有觸摸在UI上");
}
}
}
|