日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

UE4 WorldComposition加載Level與位置偏移代碼分析

作者:MOON-P 更新時間: 2022-03-11 編程語言

一、加載Level

1. WorldComposition會在UWorld::Tick里調用UpdateStreamingState處理GetDistanceVisibleLevels處理,如果是Visible的就加入UWorld的參數SteamingLevelsToConsider

2. 如果是使用LoadStreamLevel方法加載(加載WorldComposition的Level需要先把Level設置成DisableDistanceStreaming=true),也會加入UWorld的SteamingLevelsToConsider

3. UWorld::UpdateLevelStreaming處理SteamingLevelsToConsider,然后ULevelStreaming::UpdateStreamingState處理LevelStreaming的狀態來進行加載,卸載,顯示,隱藏Level。

4.ULevelStreaming::UpdateStreamingState的UnLoad狀態,開始加載Level

二、應用WorldComposition的偏移

1. ULevelStreaming::UpdateStreamingState里根據狀態會調用到這里,一般是UnLoaded時調用,之后開始異步加載Level。

2. Level::PostLoad時,在正常情況下,WorldComposition的SubLevel就在前面加入到了StreamedLevelsOwningWorld,這里取出賦值給OwmingWorld

3. UWorldComposition::OnLevelPostLoad這里取Level的OwningWorld,所以正確賦值OwningWorld很重要,然后把OwningWorld的WorldComposition的Tile賦值。

4. UpdateStreamingState的狀態是MakingVisible調用偏移

GetLevelOffset函數的數據是Level調用PostLoad調用UWorldComposition::OnLevelPostLoad的值

原文鏈接:https://blog.csdn.net/u013507300/article/details/118551003

欄目分類
最近更新