diff --git a/.obsidian/plugins/various-complements/histories.json b/.obsidian/plugins/various-complements/histories.json index 58cec24..b6873d9 100644 --- a/.obsidian/plugins/various-complements/histories.json +++ b/.obsidian/plugins/various-complements/histories.json @@ -1 +1 @@ -{"123456":{"123456":{"currentFile":{"count":2,"lastUpdated":1720755815809}}},"FGBufferData":{"FGBufferData":{"currentFile":{"count":1,"lastUpdated":1718936545718}}},"中添加写入FGBufferData逻辑。代码如下:":{"中添加写入FGBufferData逻辑。代码如下:":{"currentFile":{"count":1,"lastUpdated":1718964454078}}},"MountPoint":{"MountPoint":{"currentFile":{"count":1,"lastUpdated":1719385071039}}},"V02:Surface材质相关属性逻辑,被MF":{"V02:Surface材质相关属性逻辑,被MF":{"currentFile":{"count":1,"lastUpdated":1719480408956}}},"MaterialInstance":{"MaterialInstance":{"currentFile":{"count":1,"lastUpdated":1719541411063}}},"CharacterEffects":{"CharacterEffects":{"currentFile":{"count":1,"lastUpdated":1719544276030}}},"MainLightIntensity,这些一般在Sequence中进行修改。":{"MainLightIntensity,这些一般在Sequence中进行修改。":{"currentFile":{"count":3,"lastUpdated":1719820337575}}},"LiveLink的应用及扩展":{"LiveLink的应用及扩展":{"internalLink":{"count":1,"lastUpdated":1720682388242}}},"Actor即可。":{"Actor即可。":{"currentFile":{"count":1,"lastUpdated":1721128244899}}},"TODO清单":{"TODO清单":{"internalLink":{"count":1,"lastUpdated":1721185627583}}},"群贝拉场景。可能是动画蓝图的问题。并不确定。":{"群贝拉场景。可能是动画蓝图的问题。并不确定。":{"currentFile":{"count":1,"lastUpdated":1721186286231}}},"c++内存泄漏分析工具":{"c++内存泄漏分析工具":{"internalLink":{"count":1,"lastUpdated":1721218206634}}},"DMX优化":{"DMX优化":{"currentFile":{"count":1,"lastUpdated":1721285453609}}}} \ No newline at end of file +{"123456":{"123456":{"currentFile":{"count":2,"lastUpdated":1720755815809}}},"MountPoint":{"MountPoint":{"currentFile":{"count":1,"lastUpdated":1719385071039}}},"V02:Surface材质相关属性逻辑,被MF":{"V02:Surface材质相关属性逻辑,被MF":{"currentFile":{"count":1,"lastUpdated":1719480408956}}},"MaterialInstance":{"MaterialInstance":{"currentFile":{"count":1,"lastUpdated":1719541411063}}},"CharacterEffects":{"CharacterEffects":{"currentFile":{"count":1,"lastUpdated":1719544276030}}},"MainLightIntensity,这些一般在Sequence中进行修改。":{"MainLightIntensity,这些一般在Sequence中进行修改。":{"currentFile":{"count":3,"lastUpdated":1719820337575}}},"LiveLink的应用及扩展":{"LiveLink的应用及扩展":{"internalLink":{"count":1,"lastUpdated":1720682388242}}},"Actor即可。":{"Actor即可。":{"currentFile":{"count":1,"lastUpdated":1721128244899}}},"TODO清单":{"TODO清单":{"internalLink":{"count":1,"lastUpdated":1721185627583}}},"群贝拉场景。可能是动画蓝图的问题。并不确定。":{"群贝拉场景。可能是动画蓝图的问题。并不确定。":{"currentFile":{"count":1,"lastUpdated":1721186286231}}},"c++内存泄漏分析工具":{"c++内存泄漏分析工具":{"internalLink":{"count":1,"lastUpdated":1721218206634}}},"DMX优化":{"DMX优化":{"currentFile":{"count":1,"lastUpdated":1721285453609}}},"TsMapEnvironmentLayerManager:EnterLevelArea":{"TsMapEnvironmentLayerManager:EnterLevelArea":{"currentFile":{"count":1,"lastUpdated":1721646563688}}}} \ No newline at end of file diff --git a/03-UnrealEngine/LevelScene/World Partition(世界分区).md b/03-UnrealEngine/LevelScene/World Partition(世界分区).md index fee74b1..0f0759f 100644 --- a/03-UnrealEngine/LevelScene/World Partition(世界分区).md +++ b/03-UnrealEngine/LevelScene/World Partition(世界分区).md @@ -120,6 +120,8 @@ Build - Build Minimap | **6** | 决定是否应该为此数据层中的Actor生成HLOD。仅当启用"动态加载(Is Dynamically Loaded)"时可用。 | | **7** | 决定启用了"动态加载(Is Dynamically Loaded)"的数据层在运行时加载、卸载还是激活。 | | **8** | 决定数据层是否影响Actor的运行时加载。 | +***默认只在Editor下生效,可以将其类型切换为Runtime从而使其在游戏过程中也可以通过逻辑控制某一Layer的显隐。*** + ### 使用蓝图或者c++控制DataLayer加载 通过**UDataLayerSubsystem**的SetDataLayerState()来控制DataLayer的加载与卸载。 @@ -164,5 +166,24 @@ https://github.com/EpicGames/UnrealEngine/commit/51d38831de4da7df196eecaf13f3d4b 1. 枝江地图,针对小房间、DMX、巨蛋DMX、舞蹈室以及舞台分别使用了DataLayer。 2. ***LvieArea***可以关联DataLayer,并让其一起加载。比如乃琳卧室的LiveArea Map_SceneBedroom_Nailin,以及BP_LiveArea_11关联了DL_SeasideCity_StageA。 +- 加载 + -  TsAreaListItemView.ts + - widget.IsLoad.OnCheckStateChanged.Add((bChecked)=>{this.OnLoadStateChanged(bChecked);}); + - 加载:manager.LayerManager.AddViewTarget(this.preset.LevelAreaPreset.AreaGuid, this.preset.LevelAreaPreset.Description); + - ***创建ADirectorReplicationViewTarget,一个带有UWorldPartitionStreamingSourceComponent的Actor。*** + - ***TsLevelAreaManager.ts:LoadAreaLayer()*** + - 销毁:manager.LayerManager.RemoveViewTarget(this.preset.LevelAreaPreset.UUID); +- 切换 + - TsAreaListItemView.ts SwitchLevel() + - TsMapEnvironmentLayerManager:EnterLevelArea() + + + +TsMapEnvironmentAsset.ts:读取JSON缓存所有的道具与资产路径,之后异步加载。 + +## 结论 +1. 舞台DMX可以考虑,加一个Runtime DataLayer,之后塞进LiveArea中。 +2. + ## 曹老师提供思路 使用在进行大世界之后对Sequence中的物体进行重新Binding。