Unity 點(diǎn)擊UI與點(diǎn)擊屏幕沖突的解決方案
Unity 有點(diǎn)擊屏幕進(jìn)行移動(dòng)操作,通過Input.GetMouseButtonDown(0)。如果點(diǎn)擊到了一些UI上面會(huì)觸發(fā)點(diǎn)擊屏幕事件。
引入U(xiǎn)nityEngine.EventSystems,用函數(shù)判斷一下即可
using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; using UnityEngine.EventSystems; public class PlayerController : MonoBehaviour { private void Update() { if (EventSystem.current.IsPointerOverGameObject()) return; if (Input.GetMouseButtonDown(0)) { Debug.Log("點(diǎn)擊屏幕"); } } }
這個(gè)方法會(huì)將點(diǎn)擊Text的時(shí)候也會(huì)當(dāng)作點(diǎn)擊UI
將raycast target 取消勾選可以避免。
補(bǔ)充:unity點(diǎn)擊UI跟場(chǎng)景不沖突
unity點(diǎn)擊UI跟場(chǎng)景不沖突的方法
在射線檢測(cè)后加!EventSystem.current.IsPointerOverGameObject()即可
需要引入命名空間using UnityEngine.EventSystems;
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
C#通過實(shí)現(xiàn)winmm枚舉音頻設(shè)備
使用C#做音頻錄制時(shí)需要獲取音頻設(shè)備信息,其中比較簡(jiǎn)單的就是使用winmm,所以本文就為大家介紹一下C#如何通過實(shí)現(xiàn)winmm枚舉音頻設(shè)備,需要的可以參考下2023-10-10運(yùn)用示例簡(jiǎn)單講解C#取消令牌CancellationTokenSource
這篇文章運(yùn)用示例簡(jiǎn)單講解C#取消令牌CancellationTokenSource,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08C# Websocket連接實(shí)現(xiàn)wss協(xié)議
本文主要介紹了C# Websocket連接實(shí)現(xiàn)wss協(xié)議,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05c#計(jì)算某段代碼的執(zhí)行時(shí)間實(shí)例方法
在本篇文章里我們給大家整理了關(guān)于c#計(jì)算某段代碼的執(zhí)行時(shí)間的方法和經(jīng)驗(yàn),有興趣的朋友們學(xué)習(xí)下。2019-02-02