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

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

拖拽物體的方法:UE5 UI中的物體拖拽方式

發(fā)布時間:2023-12-19 12:59:06 瀏覽量:269次

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

先看效果




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

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


新建文件夾UIdragDrop,本期借此機會學(xué)習(xí)一個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)建拖拽預(yù)制體

創(chuàng)建Actor命名為BP_Cube作為我們的模型物體,為BP_Cube增加靜態(tài)網(wǎng)格組件Static Mesh

選擇立方體網(wǎng)格,為它創(chuàng)建一個你喜歡的材質(zhì)


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

1:在WBP_DragUI藍圖中重載,首先要檢測到鼠標移動到UI圖標上面,所以重載

OnMouseButtonDown函數(shù),


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

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



拖拽UI運行結(jié)果:

步驟10.拖拽結(jié)束后生成Actor

1:重載取消拖拽事件EventOnDragCancelled

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

3:使用射線檢測LineTraceByChannel

運行看一下結(jié)果,射線是出來了,但是位置不準確有偏差,偏差的原因是分辨率引起的,解決方法是增加

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

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

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

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

熱門課程推薦

熱門資訊

請綁定手機號

x

同學(xué)您好!

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