从 BPAv0.8 转换为 UVU
请按顺序执行这些步骤,并在执行之前先阅读所有说明
-
备份您的项目并确保您可以恢复到备份版本而不至于破坏任何内容!
-
如果您有自定义覆盖值,请制作屏幕截图或复制项目,以便轻松设置 再次使用相同的值(请注意,遮挡值已更改)。
-
打开新的空场景。
-
从创作者助手导入最新版本。
-
检查导入后控制台是否有报错。这有助于诊断已发生的问题。
- 如果您收到错误:
(...) does not belong to a U# assembly, have you made a U# assembly definition for the assembly the script is a part of?
- 重新启动 Unity 编辑器,它们应该就会消失了。
- 如果您收到错误:
-
打开使用 BPAv0.8 的场景(Scene)。
-
检查控制台,很可能有如下消息:
[UdonSharp] Scene behaviour 'SyncedPlayers' needed UnityEngine.Object upgrade pass
这意味着升级是成功的。- 如果您看到错误
Can't remove AudioListener because AudioReverbFilter depends on it
,请忽略它,它是一个以让 Reverb 对声部起作用的小 “特性”。
-
如果存在类似
[UdonSharp] Empty UdonBehaviour found on (...)
的报错。
- 单击该消息可导航到导致这一报错的游戏对象。
- 找到空的 UdonBehaviours(Program Source 设置为
None
)。 - 删除这些 UdonBehaviour。
- 单击该消息可导航到导致这一报错的游戏对象。
-
将
Assets/TLP/UdonUtils/Prefabs/TLP_Logger.prefab
预制件添加到场景中。 -
找到
PlayerAudioController
,如果已解压缩,请将整个游戏对象替换为TLP_PlayerAudioController
预制件。 -
打开预制件的层次结构并导航到
Configurations
游戏对象。 -
进行您的更改,默认情况下,这些更改将应用于每个玩家对 和
LocalConfiguration
DefaultConfiguration
-
最痛的部分:
- 查看 层级窗口(Hierarchy)并检查每个
UVU
组件是否有未设置的变量 - 在测试过程中,我发现一些对例如
SyncedIntegerArray
在升级后为空。 - 如果这些变量是预制件的一部分,请右键单击它们并尝试
Revert
选项 (如果可用),否则, 从子游戏对象中选择相应的组件,或将整个游戏对象替换为UVU
预制件,然后重新设置它。 - 使用 ClientSim 测试您世界中的每个 AudioZone/-Room 并检查 错误控制台。
- 查看 层级窗口(Hierarchy)并检查每个
-
最后,有一些脚本不再以 UdonBehaviours 的形状存在,因此场景中可能会有一些空的 UdonBehaviours 。控制台将告诉您有关它们的信息。
- UdonMath
- UdonCommon
- UdonDebug 的 除非解压缩了任何预制件,否则它们应该在升级过程中自动删除。
- UdonMath
No Comments