最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

UE4小地圖插件Journeyman's Minimap中文編程參考

2023-07-24 15:38 作者:巡邏貓  | 我要投稿

配套視頻教程:RTS風(fēng)格小地圖(Journeyman's Minimap插件改造)鼠標(biāo)點(diǎn)選定位和拖拽滑動鏡頭


鼠標(biāo)點(diǎn)擊小地圖

WidgetBlueprint'/MinimapPlugin/Widgets/Minimap.Minimap'

EventDispatcher(事件分發(fā)器) - OnMapClicked

需要先通過Bind Event to綁定此事件

示例:Minimap藍(lán)圖類中 Functions-Interaction-ProcessBackgroundClick()函數(shù)


小地圖框選開關(guān)

小地圖視椎體線框顯示

Floor Distance決定了線框的顯示大小
Floor Distance決定了線框的顯示大小

坐標(biāo)轉(zhuǎn)換說明:

1.將鼠標(biāo)的屏幕位置ScreenSpacePosition轉(zhuǎn)換為小地圖UV

參考a:

C++文件\Source\MinimapPlugin\Private\MapRendererComponent.cpp:UMapRendererComponent::HandleClick()函數(shù)

參考b:

藍(lán)圖類MinimapInternal_BackgroundMouseCapture

Functions - Mouse - OnMouseButtonUp()函數(shù)

2.將鼠標(biāo)在小地圖上點(diǎn)擊的UV轉(zhuǎn)換為世界位置:

調(diào)用MapView組件的C++函數(shù)DeprojectViewToWorld()


幾個節(jié)點(diǎn)含義:

返回是的是控件在屏幕上的長寬如(420,420)


所在藍(lán)圖類MinimapInternal_BoxSelect

返回的是當(dāng)前鼠標(biāo)屏幕坐標(biāo)相對于控件的本地坐標(biāo)(如控件覆蓋全屏,則等于屏幕坐標(biāo))


藍(lán)圖類MinimapInternal_BoxSelect

變量說明

MapGeo:小地圖控件

StartPos:鼠標(biāo)點(diǎn)擊位置相對于控件內(nèi)左上角的本地坐標(biāo)

StartOffset:當(dāng)前鼠標(biāo)位置減去鼠標(biāo)初始點(diǎn)擊位置

以上變量值來源:

藍(lán)圖類MinimapInternal_BackgroundMouseCapture

EventGraph – Start Drag – Create Widget(Minimap Internal Box Seclect) 初始化了這些變量。

此處還做了一件事,就是綁定了Minimap Internal Box Seclect控件的委托OnBoxSelect:

調(diào)用自身的委托OnBoxSelect,而其自己的委托是在

WidgetBlueprint'Minimap.Minimap'控件的Event Construction中被綁定的:

可見實(shí)際的小地圖框選處理函數(shù)為ProcessBoxSelect()。


鼠標(biāo)在小地圖框選事件

藍(lán)圖類MinimapInternal_BoxSelect

函數(shù) - OnMouseMove

鼠標(biāo)滑動時繪制選擇框

函數(shù) – OnPaint

?

結(jié)論:

由以上知識我們得出當(dāng)鼠標(biāo)滑動時我們可以這樣實(shí)時獲取當(dāng)前鼠標(biāo)在小地圖上所對應(yīng)的世界位置。

案例:當(dāng)鼠標(biāo)在小地圖拖拽(按住鼠標(biāo)左鍵)時,同步移動攝相機(jī)(視口)位置

位置:藍(lán)圖類MinimapInternal_BoxSelect(因?yàn)槲覀內(nèi)匀恍枰髽?biāo)在拖拽狀態(tài)才響應(yīng)滑動)的OnMouseMove函數(shù)里

最后這個DeprojectViewToWorld節(jié)點(diǎn)返回的就是世界位置。

驗(yàn)證: 可以和Minimap.Minimap的OnMapClicked事件打印出的坐標(biāo)比較,完全一致則說明正確。

驗(yàn)證2:MinimapInternal_Demo里也有鼠標(biāo)左鍵點(diǎn)擊小地圖產(chǎn)生一個圓圈的例子處可以打印世界坐標(biāo)位置,也可以與此處坐標(biāo)進(jìn)行比對,完全一致則說明正確。


UE4小地圖插件Journeyman's Minimap中文編程參考的評論 (共 條)

分享到微博請遵守國家法律
五常市| 肥西县| 广德县| 淮南市| 兰溪市| 乐陵市| 常德市| 驻马店市| 甘谷县| 库尔勒市| 尼玛县| 沙坪坝区| 沭阳县| 宜州市| 哈密市| 大足县| 溆浦县| 噶尔县| 抚顺县| 剑河县| 海安县| 平遥县| 绍兴市| 蓬溪县| 怀宁县| 太仓市| 秦安县| 葫芦岛市| 洛扎县| 和顺县| 周口市| 阿图什市| 怀化市| 五莲县| 克拉玛依市| 武山县| 锡林郭勒盟| 砚山县| 兖州市| 新泰市| 镇坪县|