unity判断鼠标是否点击到ui,获得当前点击到的ui物体

Posted 苍狼王unity学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity判断鼠标是否点击到ui,获得当前点击到的ui物体相关的知识,希望对你有一定的参考价值。

 

 

    if (Input.GetMouseButtonUp(0))
       
            //判断点击的是否是UI
            if (EventSystem.current.IsPointerOverGameObject())
           
                Debug.Log("点击到了UI上");
           
            else
           
                Debug.Log("没有点击到UI上");
           
       

 

2、获得当前点击到的ui物体

    /// <summary>

    /// 获得当前点击到的UI物体

    /// </summary>

    public GameObject Skode_GetCurrentSelect()

   

        GameObject obj=null;

 

        GraphicRaycaster[] graphicRaycasters = FindObjectsOfType<GraphicRaycaster>();

 

        PointerEventData eventData = new PointerEventData(EventSystem.current);

        eventData.pressPosition = Input.mousePosition;

        eventData.positio

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

参考技术A 比如战斗场景,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上");


本回答被提问者采纳

以上是关于unity判断鼠标是否点击到ui,获得当前点击到的ui物体的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Unity判断鼠标是否在ui的Recttransform内的源码

小功能⭐️Unity获取点击到的UI

小功能⭐️Unity获取点击到的UI

Unity3D日常开发从物体当前方发射一条射线,并返回射线检测到的物体信息