Unity3D_UGUI判断鼠标或者手指是否点击在UI上

Posted cnwuchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D_UGUI判断鼠标或者手指是否点击在UI上相关的知识,希望对你有一定的参考价值。

 比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分。为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上。 以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法。

#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上");
        }
    }
}

 

以上是关于Unity3D_UGUI判断鼠标或者手指是否点击在UI上的主要内容,如果未能解决你的问题,请参考以下文章

unity 怎么识别鼠标点击在ui上

验证码绑定点击和手指状事件

Unity3D_UGUI速成班——06.Slider

Unity知识一:简单的点击事件

如何将鼠标箭头变成可点击背景上的手指指针? [复制]

让flash完全透明化,不响应鼠标点击呢?