激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

學習UE5中用UI拖動三維物體的新方法(上)

發(fā)布時間:2024-04-23 16:40:31 瀏覽量:311次

目標:UE5在Runtime下現(xiàn)實UI拖拽三維物體--Actor,拖拽結束后生成Actor物體

先看效果

步驟1. 創(chuàng)建UE5工程

新建UE5的C++空白項目,記得選擇C++,初學者包可以根據(jù)自己需要選擇是否勾選,命名為UIDragActor

新建文件夾UIdragDrop,本期借此機會學習一個GamePlay游戲框架。

步驟2. 創(chuàng)建一個新的GameMode

在WorldSettings面板中點擊GameMode override右邊的+號,創(chuàng)建新的GameMode

這種創(chuàng)建方式,系統(tǒng)會自動使用新創(chuàng)建的BP_UIGameMode。

步驟3. DefaultPawnClass在這里直接第三人稱BP_ThirdPersonCharacter.

拷貝系統(tǒng)的第三人稱BP_ThirdPersonCharacter放到新建的文件夾中,并且BP_UICharater。

步驟4.創(chuàng)建HUD用于UI交互

點擊右邊+號創(chuàng)建HUD,命名為BP_HUD

步驟5.創(chuàng)建Player Controller Class

同樣創(chuàng)建BP_UIPlayerController

步驟6.創(chuàng)建UI

創(chuàng)建主UIWBP_Main,然后在BP_HUD中創(chuàng)建并且顯示出來

步驟7.創(chuàng)建拖拽UI

創(chuàng)建拖拽圖標UI并且放到主界面WBP_Main中

步驟8.創(chuàng)建拖拽預制體

創(chuàng)建Actor命名為BP_Cube作為我們的模型物體,為BP_Cube增加靜態(tài)網格組件Static Mesh,選擇立方體網格,為它創(chuàng)建一個你喜歡的材質

步驟9.編寫拖拽UI的交互代碼

1:在WBP_DragUI藍圖中重載OnMouseButtonDown函數(shù),檢測鼠標移動到UI圖標上面

2:檢測鼠標的拖拽事件,并且判斷是鼠標左鍵

3:判斷到左鍵拖拽事件以后,接受拖拽信息

拖拽UI運行結果:

步驟10.拖拽結束后生成Actor

1:重載取消拖拽事件EventOnDragCancelled

2:獲取鼠標在視口中的位置,并且把屏幕位置轉化成世界位置

3:使用射線檢測LineTraceByChannel

運行看一下結果,射線是出來了,但是位置不準確有偏差,增加分辨率矯正位置

4:通過鼠標在屏幕中位置乘以視口分辨率,來矯正位置,結果就應該是正確的

步驟11.通過打點的位置生成物體Actor

1:既然位置現(xiàn)在是正確了,接下來在這個位置上生成物體即可

2:運行看到第一種方式拖拽UI可以正確生成Actor了

熱門課程推薦

熱門資訊

請綁定手機號

x

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定