五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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中文編程參考的評論 (共 條)

分享到微博請遵守國家法律
景德镇市| 汤原县| 河北区| 额敏县| 陇西县| 武城县| 万全县| 墨玉县| 庆云县| 无锡市| 册亨县| 综艺| 甘洛县| 太湖县| 乾安县| 江源县| 天门市| 北京市| 陆丰市| 垦利县| 寿宁县| 淮北市| 乾安县| 桓台县| 平果县| 沽源县| 阿拉善盟| 乌兰县| 浮梁县| 金坛市| 武邑县| 五指山市| 张家口市| 凉城县| 彭泽县| 肇东市| 隆林| 龙游县| 环江| 鹤庆县| 桦甸市|