国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity 事件系統(tǒng)(Event System)

2023-05-11 21:58 作者:小左在做游戲  | 我要投稿

事件系統(tǒng)是一種基于輸入(可以是鍵盤(pán)、鼠標(biāo)、觸摸或者自定義輸入),將對(duì)應(yīng)事件發(fā)送到程序中的對(duì)象的方式。當(dāng)你將事件系統(tǒng)組件(EventSystem)添加到游戲?qū)ο髸r(shí)(新建UI時(shí)通常會(huì)直接附帶一個(gè)),會(huì)發(fā)現(xiàn)它基本沒(méi)有組件上的功能,這是因?yàn)槭录到y(tǒng)本身被設(shè)計(jì)為事件系統(tǒng)模塊之間通信的樞紐。

它的主要起如下作用:

① 管理被選擇的游戲?qū)ο螅?/p>

② 管理正在使用的輸入模塊

③ 管理射線(xiàn)檢測(cè)(如需要)

④ 根據(jù)需求更新所有輸入模塊

輸入模塊(Input Modules)

輸入模塊是你事件系統(tǒng)運(yùn)行主要邏輯的所在位置,它們用于:

① 處理輸入

② 管理事件狀態(tài)

③ 將事件發(fā)送到場(chǎng)景中的對(duì)象。

一個(gè)場(chǎng)景中只能有一個(gè)輸入模塊在事件系統(tǒng)中處于活動(dòng)狀態(tài),并且它必須是與事件系統(tǒng)組件在同一游戲?qū)ο笊稀?/p>

如果想編寫(xiě)一個(gè)自定義的輸入模塊擴(kuò)展和編寫(xiě)您自己的事件,發(fā)送Unity中的現(xiàn)有UI組件支持的事件。要參閱Messaging System文檔(這部分后面有機(jī)會(huì)將單獨(dú)講解)。

輸入模塊是事件系統(tǒng)中可以進(jìn)行配置和定制的主要邏輯部分。默認(rèn)配置了兩個(gè)輸入模塊,一個(gè)用于獨(dú)立游戲的輸入(Standalone Input Module),另一個(gè)用于觸摸輸入設(shè)計(jì)(已被集成到前面),模塊將按照既定配置來(lái)接收和分派事件。

輸入模塊是事件系統(tǒng)的“邏輯”開(kāi)始的地方。當(dāng)啟用事件系統(tǒng)時(shí),它會(huì)查看那些輸入模塊中方式被觸發(fā)了,并將更新處理傳遞給特定的模塊。其設(shè)計(jì)目的支持你希望的輸入系統(tǒng)進(jìn)行擴(kuò)展或修改,將外部特定的輸入(如觸摸、遙桿、鼠標(biāo)、運(yùn)動(dòng)控制器)變成事件傳遞到事件系統(tǒng)中派發(fā)。內(nèi)置輸入模塊支持常見(jiàn)的游戲配置,如觸摸輸入、控制器輸入、鍵盤(pán)輸入和鼠標(biāo)輸入。如果你在 MonoBehavior 上實(shí)現(xiàn)了特定接口,它也會(huì)將各種事件發(fā)送到應(yīng)用程序中的控件。所有UI組件都將支持對(duì)應(yīng)的特定接口。

Standalone Input Module

該模塊是用來(lái)設(shè)置你所望的控制器/鼠標(biāo)如何工作,包括按鈕按下、拖動(dòng)等輸入的以獲得相應(yīng)。當(dāng)鼠標(biāo)/輸入設(shè)備移動(dòng)時(shí),該模塊將指針事件發(fā)送到組件,并通過(guò)Graphics Raycaster和Physics Raycaster來(lái)計(jì)算指針當(dāng)前指向哪個(gè)物體。為了滿(mǎn)足需求,還可以配置這些Raycaster檢測(cè)或忽略場(chǎng)景的某部分。

該模塊發(fā)送移動(dòng)(move)和提交/取消(submit/cancel)事件,來(lái)響應(yīng)通過(guò)輸入窗口的輸入。這適用于鍵盤(pán)和控制器的輸入,被監(jiān)聽(tīng)的Axis和按鍵可以在模塊中進(jìn)行配置。

?

參數(shù)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 作用

Horizontal Axis(水平軸)?

Type the desired manager name for the horizontal axis button.(水平軸按鈕在管理器中的名稱(chēng))

Vertical Axis(垂直軸)

Type the desired manager name for the vertical axis.(垂直軸按鈕在管理器中的名稱(chēng))

Submit Button(確認(rèn)鍵)

Type the desired manager name for the Submit button.(確認(rèn)鍵按鈕在管理器中的名稱(chēng))

Cancel Button(取消鍵)

Type the desired manager name for the Cancel button.(取消鍵按鈕在管理器中的名稱(chēng))

Input Actions Per Second(每秒最大輸入數(shù))

Number of keyboard/controller inputs allowed per second.(每秒允許的鍵盤(pán)/控制器輸入數(shù))

Repeat Delay(重復(fù)延遲)

Delay in seconds before the input actions per second repeat rate takes effect.(每秒重復(fù)輸入操作生效之前的延遲)

射線(xiàn)系統(tǒng)(Raycasters

事件系統(tǒng)需要一種方法來(lái)檢測(cè)當(dāng)前輸入事件需要發(fā)送到的位置,這就由射線(xiàn)系統(tǒng)提供。給定一個(gè)屏幕空間坐標(biāo),他們將收集所有潛在的目標(biāo)對(duì)象,找出它們是否在給定的位置下,然后返回最接近屏幕的對(duì)象。

系統(tǒng)提供了三種射線(xiàn)系統(tǒng):

Graphic Raycaster-用于畫(huà)布上UI界面元素組件

Physics 2D Raycaster - 用于2D物理組件

Physics Raycaster - 用于3D物理組件

如果您在場(chǎng)景中配置了2D / 3D Physics?Raycaster,只需附加一個(gè)實(shí)現(xiàn)事件接口之一的腳本,則很容易使非UI元素從輸入模塊接收消息。如果使用了多個(gè)Raycaster,那么它們都會(huì)發(fā)射射線(xiàn),結(jié)果將根據(jù)到目標(biāo)的距離進(jìn)行排序。

Graphic Raycaster


新建的Canvas中將自帶Graphic Raycaster組件,將監(jiān)聽(tīng)Canvas上的所有圖形,并確定是否有一個(gè)被觸發(fā)事件。

Ignore Reversed Graphics(忽略背面圖形)

Should graphics facing away from the raycaster be considered(如果勾選,Raycaster將忽略Canvas中被翻轉(zhuǎn)的圖形)

注:接收事件組件沿X或Y軸翻轉(zhuǎn)180°

Blocked Objects(遮擋物體)

該Canvas上的射線(xiàn)將被2D或者3D物體遮擋.

注:阻擋物件必須有對(duì)應(yīng)的Collider,必須與下方同時(shí)啟用

Blocking Mask(遮擋層)

該Canvas上的射線(xiàn)將被所選擇的層遮擋.

注:阻擋物件必須有對(duì)應(yīng)的Collider,必須與上方同時(shí)啟用

Canvas 被遮擋的效果需要修改Canvas的 RenderMode為Screen Space - Camera 或者 World Space,此時(shí)視覺(jué)效果遮擋關(guān)系與視覺(jué)效果相同。

Physics Raycaster/Physics 2D Raycaster

兩種射線(xiàn)系統(tǒng)針對(duì)場(chǎng)景中的2D和3D物體,同時(shí)這兩個(gè)組件目前直接被綁定在相機(jī)上。

Max number of ray intersection表示最大射線(xiàn)的交互數(shù),如設(shè)為0則是自動(dòng)分配,其他值都將采取非自動(dòng)調(diào)配模式。

參考內(nèi)容:unity3d 文檔:https://docs.unity3d.com/2022.2/Documentation/Manual/EventSystem.html.

?


Unity 事件系統(tǒng)(Event System)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
余庆县| 阿拉善左旗| 阿荣旗| 禄丰县| 麟游县| 汉中市| 安顺市| 靖宇县| 满城县| 平罗县| 白河县| 沙湾县| 潞西市| 平阴县| 绍兴县| 大同市| 嘉义县| 工布江达县| 德格县| 福建省| 灵寿县| 万源市| 紫云| 崇州市| 吉安县| 名山县| 建瓯市| 阳曲县| 万盛区| 乡宁县| 巴南区| 元朗区| 项城市| 辽阳县| 威远县| 土默特右旗| 渝北区| 广东省| 阿合奇县| 义马市| 云南省|