此示例演示了(le)如何與世界空間中的(de) 3D 對(duì)象和(hé) 2D UI 進行交互。
示例工作原理(lǐ)
該示例展示了(le)如何與場(chǎng)景中的(de) UI 元素和(hé)其他(tā)遊戲對(duì)象進行交互。
浮動的(de) UI 面闆提供了(le)常見的(de) UI 元素,例如按鈕和(hé)滾動條。按鈕可(kě)以通(tōng)過凝視指針或設備指針進行操作,而示例中的(de)滾動條隻能通(tōng)過設備指針使用(yòng)。此外,場(chǎng)景中的(de)另一個(gè) UI 元素展示了(le)主機控制器觸摸闆的(de)輸入。
最後,一個(gè)可(kě)用(yòng)控制器抓取的(de)互動立方體對(duì)象展示了(le) 3D 對(duì)象交互。要使其成爲有效的(de)交互對(duì)象,該立方體需要與 3DWidget 通(tōng)道發生碰撞或重疊,并且需要實現 BPI_Interactable 接口(位置在 SnapdragonSpacesSamples Content > Snapdragon > Common > Placeable)。要爲對(duì)象添加接口,請在藍圖中選擇Class Settings > Interfaces > Implemented Interfaces > Add。
設備指針控制器
設備指針控制器的(de)實現分(fēn)爲多(duō)個(gè)藍圖,以下(xià)章(zhāng)節将詳細描述這(zhè)些藍圖。
指針控制器組件
BP_PointerControllerComponent 藍圖文件(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Common > Core > Components)可(kě)以添加到 pawn 類中,實現與 2D UI 和(hé) 3D 對(duì)象的(de)指針交互。
該組件繼承自父類 BP_ControllerComponent(參見場(chǎng)景設置),提供了(le)管理(lǐ)與世界交互的(de)基礎腳本。唯一可(kě)以自定義的(de)選項是“運動控制器類”,指的(de)是當激活該控制器時(shí)會生成的(de)演員(yuán)類。
指針控制器
BP_PointerController 藍圖文件(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Common > Placeable)管理(lǐ)射線投射以及與小部件和(hé) 3D 對(duì)象的(de)交互,它使用(yòng)名爲 3DWidget 的(de)自定義 Trace Channel。爲了(le)可(kě)視化(huà)設備指針控制器,一個(gè)圓柱網格會從控制器的(de)原點沿其前進方向渲染。默認情況下(xià),圓柱網格爲紅色,但當它與有效的(de)交互對(duì)象碰撞時(shí),會變爲綠(lǜ)色。此外,圓柱網格的(de)長(cháng)度會根據射線投射的(de)碰撞點進行調整。