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

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

时间: 2024-08-01 14:28:12

Unity3D_UGUI判断鼠标或者手指是否点击在UI上的相关文章

as3 判断鼠标在非透明区域点击图片

/** *鼠标事件 * @param evt * */ private function mouseDownHandler(evt:MouseEvent):void { if(evt.currentTarget is SceneObject) { //判断当前点击区是否在最小图形范围内 var bmd:BitmapData = new BitmapData(evt.currentTarget.width,evt.currentTarget.height,true, 0x00000000); bm

Unity判断鼠标是否在UI(UGUI)上

"EventSystem.current.IsPointerOverGameObject()" UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分.为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上. 1 #if UNITY_ANDROID && !UNITY_EDITOR 2 #define ANDROID 3 #endif 4 5 6 #if UNITY_IPHONE && !UNITY_EDIT

unity区分点击在3D物体还是2D UI上

当场景中的3D物体需要响应点击,但同时有UI显示时,存在判断点击是在3D物体上还是UI上的问题,办法如下: 1. 射线检测所有2D 3D物体,有2D物体被检测到时表明当前有UI.但无论Physics2D.Raycast()还是Physics.Raycast()都只能检测到含有Collider组件的物体,普通UI如Image Button等一般用射线是不起作用的.EventSystem.current.RaycastAll()可以将当前屏幕上的所有可检测的物体全部检测到,该方法需要自己构造一个Po

判断鼠标点击在div外时,更改背景图片

学习起步时,本人试着在web端界面上仿照qq客户端主菜单,做出了一个界面. 当做到qq主菜单的搜索框时,发现点击搜索框后,里面的背景图片会消失,如下面2张图所示:      点击前                                                                      点击后 尽管类似这种判断鼠标是否点击在div外,以更改背景图片的应用在web开发中并不多见,但是我们还是需要明白,应如何实现对鼠标是否点击在div外的判断. 在这里,我采用了如下代

unity判断是否点击了UI界面

1.判断是否点击 UGUI界面: using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.EventSystems; public class UiClickTest : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Up

Unity3D 判断鼠标是否按在UGUI上

判断鼠标是否点击在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 clas

js判断鼠标是否停止移动

本程序实现当鼠标在一个特定的div内悬停n秒时,判断出已经停止移动. 思路: 1.定义全局变量鼠标移动状态imouse,定时器timer.当鼠标在div内移动时,imouse值为1,相反静止时值为0:timer可以实现每过n秒就判断鼠标状态,然后把imouse重置为0: 2.div监听onmouseover.当鼠标进入区域时,就设置定时器: 3.div监听onmousemove.当鼠标移动时,设置imouse值为1: 4.div监听onmouseout.当鼠标离开时,清除定时器timer <ht

判断鼠标是否在指定区域代码

<div style="width:300px; height:300px; border:1px solid red;"> <div id="target"><div><span>测试</span></div></div> </div> <style type="text/css"> #target{ width: 200px; heig

判断鼠标移入移出元素时的方向

本文要介绍的是一种鼠标从一个元素移入移出时,获取鼠标移动方向的思路.这个方法可以帮助你判断鼠标在移入移出时,是从上下左右的哪个方向发生的.这个思路,是我自己琢磨出来,利用了一点曾经高中学过的数学知识,但是非常简单好理解,希望能对你有所帮助. 在线demo: http://liuyunzhuge.github.io/blog/mouse_direction/demo1.html 相关代码: https://github.com/liuyunzhuge/blog/blob/master/mouse_