国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity UGUI實(shí)現(xiàn)點(diǎn)擊事件穿透

這篇具有很好參考價(jià)值的文章主要介紹了Unity UGUI實(shí)現(xiàn)點(diǎn)擊事件穿透。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?代碼很簡(jiǎn)單如下 將此代碼掛載到上層節(jié)點(diǎn)上即可

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class ClickEventPenetration : MonoBehaviour, IPointerClickHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        PassEvent(eventData, ExecuteEvents.pointerClickHandler);
    }

    private void PassEvent<T>(PointerEventData pointerEventData, ExecuteEvents.EventFunction<T> eventFunction) where T : IEventSystemHandler
    {
        List<RaycastResult> raycastResults = new List<RaycastResult>();
        //獲取射線檢測(cè)結(jié)果
        EventSystem.current.RaycastAll(pointerEventData, raycastResults);
        for (int i = 0; i < raycastResults.Count; i++)
        {
            GameObject resultGameObject = raycastResults[i].gameObject;
            //如果不是自身則將事件傳遞下去
            if (resultGameObject != null && resultGameObject != this.gameObject)
            {
                //目前只是傳遞一層如需多層把break去掉即可
                ExecuteEvents.Execute(resultGameObject, pointerEventData, eventFunction);
                break;
            }
        }
    }
}

使用此方案遇到的一些問題以及處理方法

1.下層Button沒響應(yīng)問題

如果只傳遞一層的情況 Button的Text文本 或者Button下面有遮擋物 并且Raycast Target是true的情況它會(huì)傳遞給Text或者 其他遮擋物 而Button 不會(huì)收到點(diǎn)擊消息 所以如果想要下層百分百生效 最好的情況是 把Button 下面的遮擋物 Raycast Target設(shè)置為false 因?yàn)槿绻恢蓖聜鬟f的話 當(dāng)前點(diǎn)擊的位置無論疊加多少層Button 他都會(huì)響應(yīng) 所以一直往下傳遞是不可控的情況

2.下層Toggle沒響應(yīng)問題

再有一種情況是Toggle 我在UI上的Toggle 自身沒有Image 組件 Toggle的Target Graphic 設(shè)置的是Background 然后事件傳遞到Backgeround 之后 Toggle并沒有響應(yīng) 所以如果想讓Toggle也響應(yīng)該事件 需要將Toggle的Target Graphic設(shè)置為自身 給Toggle添加一個(gè)Image 并且Raycast Target 設(shè)置為true 并且沒有遮擋物即可文章來源地址http://www.zghlxwxcb.cn/news/detail-845398.html

到了這里,關(guān)于Unity UGUI實(shí)現(xiàn)點(diǎn)擊事件穿透的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【小技巧】Unity UGUI 中使用腳本激活按鈕onclick事件

    【小技巧】Unity UGUI 中使用腳本激活按鈕onclick事件

    在使用unity UGUI 按鈕通常會(huì)直接在面板點(diǎn)擊按鈕的onclick增加事件并將需要按鈕觸發(fā)功能選擇好,已經(jīng)制作好按鈕想使用腳本來控制點(diǎn)擊的發(fā)生。 1.場(chǎng)景中Button是直接采用拖拽的方式實(shí)現(xiàn)打印功能 2.場(chǎng)景中Button1是直接調(diào)用腳本中Best()方法; ? ?3.腳本代碼: using System.Collec

    2023年04月09日
    瀏覽(17)
  • Unity UGUI的EventSystem(事件系統(tǒng))組件的介紹及使用

    EventSystem是Unity UGUI中的一個(gè)重要組件,用于處理用戶輸入事件,如點(diǎn)擊、拖拽、滾動(dòng)等。它負(fù)責(zé)將用戶輸入事件傳遞給合適的UI元素,并觸發(fā)相應(yīng)的事件回調(diào)函數(shù)。 EventSystem組件通過射線檢測(cè)來確定用戶輸入事件發(fā)生的位置,并將事件傳遞給最合適的UI元素。它會(huì)根據(jù)UI元素的

    2024年02月16日
    瀏覽(26)
  • Unity  SteamVR 2.x  UGUI射線交互 +物品射線點(diǎn)擊+物品抓起(超級(jí)簡(jiǎn)單)

    Unity SteamVR 2.x UGUI射線交互 +物品射線點(diǎn)擊+物品抓起(超級(jí)簡(jiǎn)單)

    剛開始先查看了其他道友的方案:1.Unity使用SteamVR2.0實(shí)現(xiàn)基本功能(瞬移,抓取物品,射線點(diǎn)擊,UI交互等)_貪小心的博客-CSDN博客_unity steam vr 2.【Steam VR 2.0】5.射線操作UGUI-射線點(diǎn)擊物體_恩博同學(xué)的博客-CSDN博客_htc steamvr 射線點(diǎn)擊ui 嗯。。。試著嘗試了一下,不是很好用,于是乎記

    2023年04月25日
    瀏覽(23)
  • Unity UGUI的EventTrigger (事件監(jiān)聽器)組件的介紹及使用

    EventTrigger是Unity UGUI中的一個(gè)組件,用于監(jiān)聽和響應(yīng)UI元素的各種事件,例如點(diǎn)擊、拖拽、進(jìn)入、離開等。通過EventTrigger組件,我們可以方便地為UI元素添加各種交互行為。 EventTrigger組件通過監(jiān)聽UI元素上的事件,并在事件觸發(fā)時(shí)執(zhí)行相應(yīng)的回調(diào)函數(shù)。每個(gè)UI元素可以添加多個(gè)

    2024年02月15日
    瀏覽(20)
  • 【Unity3D】實(shí)現(xiàn)UI點(diǎn)擊事件穿透

    【Unity3D】實(shí)現(xiàn)UI點(diǎn)擊事件穿透

    ? ????????注意:EventSystem.current.RaycastAll獲取到的對(duì)象列表是能夠接受事件的,假如你的按鈕Button自己身上沒有Image,而是Button的子物體有,那么你就要給這個(gè)子物體也加上標(biāo)簽Tag才能響應(yīng)到。 如果ExecuteEvents.Execute不管用,可以試試ExecuteEvents.ExecuteHierarchy

    2024年02月04日
    瀏覽(92)
  • 【100個(gè) Unity實(shí)用技能】?? | UGUI Text中加入超鏈接文本,可直接點(diǎn)擊跳轉(zhuǎn)

    【100個(gè) Unity實(shí)用技能】?? | UGUI Text中加入超鏈接文本,可直接點(diǎn)擊跳轉(zhuǎn)

    老規(guī)矩,先介紹一下 Unity 的科普小知識(shí): Unity 是 實(shí)時(shí)3D互動(dòng)內(nèi)容創(chuàng)作和運(yùn)營(yíng)平臺(tái) 。 包括 游戲開發(fā) 、 美術(shù) 、 建筑 、 汽車設(shè)計(jì) 、 影視 在內(nèi)的所有創(chuàng)作者,借助 Unity 將創(chuàng)意變成現(xiàn)實(shí)。 Unity 平臺(tái)提供一整套完善的軟件解決方案,可用于創(chuàng)作、運(yùn)營(yíng)和變現(xiàn)任何實(shí)時(shí)互動(dòng)的2D和

    2024年02月08日
    瀏覽(21)
  • Unity UGUI 邊緣泛光 描邊 的簡(jiǎn)單實(shí)現(xiàn)

    Unity UGUI 邊緣泛光 描邊 的簡(jiǎn)單實(shí)現(xiàn)

    先看效果 ?該效果是RawImage組件下實(shí)現(xiàn)。單純Shader實(shí)現(xiàn),不用c#輔助,當(dāng)然,肯定也有缺點(diǎn),在一些場(chǎng)合下或許不適用,我也希望能最大化適用,奈何技術(shù)有限。網(wǎng)上看過一些實(shí)現(xiàn)有些只適合3D,并且不適合棱角的,有些適用UI,效果也不錯(cuò),但是為了泛光范圍加大,性能指數(shù)

    2024年02月12日
    瀏覽(97)
  • Unity中UGUI在Mask剪裁粒子特效的實(shí)現(xiàn)

    Unity中UGUI在Mask剪裁粒子特效的實(shí)現(xiàn)

    在Unity使用Mask是剪裁不了粒子特效的,之前有想過RenderTexture來實(shí)現(xiàn),不過使用RenderTexture不適合用于很多個(gè)特效,因?yàn)镽enderTexture依賴Camera的照射,如果在背包中每種道具都有不同的特效,那使用RenderTexture則需要不同特效都用一個(gè)Camera。明顯是不合適的。 先看下剪裁不了的顯

    2024年01月24日
    瀏覽(34)
  • Unity實(shí)現(xiàn)一個(gè)可擴(kuò)展的UGUI無限滑動(dòng)列表控件

    Unity實(shí)現(xiàn)一個(gè)可擴(kuò)展的UGUI無限滑動(dòng)列表控件

    12月20日新增 增加一個(gè)可收縮的滑動(dòng)列表,適用于游戲中的任務(wù)系統(tǒng),成就等 使用說明 創(chuàng)建時(shí)需要兩個(gè)模板slot,一個(gè)是button,另一個(gè)則是btn下顯示的cell 配置如下圖添加 ExpandableView 腳本,新增的IsDefaultExpand用來控制是否展開 11月28日新增 增加可調(diào)節(jié)的頂部間隙和左側(cè)間隙 采

    2024年01月19日
    瀏覽(22)
  • Unity 之 使用原生UGUI實(shí)現(xiàn)隨手移動(dòng)搖桿功能經(jīng)典實(shí)例

    Unity 之 使用原生UGUI實(shí)現(xiàn)隨手移動(dòng)搖桿功能經(jīng)典實(shí)例

    本文最終實(shí)現(xiàn)效果: 做一個(gè)實(shí)驗(yàn)看一下使用 ScrollRect 組件實(shí)現(xiàn)搖桿的原理。 在 Hierarchy 面板右鍵 UI - Scroll View 創(chuàng)建一個(gè)滾動(dòng)視圖,這個(gè)組件經(jīng)常被應(yīng)用于排行榜,選角色之類的可滑動(dòng)的界面。 在 Scroll View - Viewport - Content 添加一個(gè)Image組件 運(yùn)行場(chǎng)景,鼠標(biāo)點(diǎn)擊并拖動(dòng)中間部分

    2024年01月17日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包