码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-03-26 22:51:04      阅读:334      评论:0      收藏:0      [点我收藏+]

标签:events   color   ems   debug   fine   end   upd   button   mon   

 比如战斗场景,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上

标签:events   color   ems   debug   fine   end   upd   button   mon   

原文地址:https://www.cnblogs.com/cnwuchao/p/10604092.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!