Skip to main content

从 BPAv0.8 转换为 UVU

请按顺序执行这些步骤,并在执行之前先阅读所有说明

  1. 备份您的项目并确保您可以恢复到备份版本而不至于破坏任何内容!


  2. 如果您有自定义覆盖值,请制作屏幕截图或复制项目,以便轻松设置 再次使用相同的值(请注意,遮挡值已更改)。


  3. 打开新的空场景。


  4. 从创作者助手导入最新版本。


  5. 检查导入后控制台是否有报错。这有助于诊断已发生的问题。


    1. 如果您收到错误:
      (...) does not belong to a U# assembly, have you made a U# assembly definition for the assembly the script is a part of?
      • 重新启动 Unity 编辑器,它们应该就会消失了。

  6. 打开使用 BPAv0.8 的场景(Scene)。


  7. 检查控制台,很可能有如下消息:


    1. [UdonSharp] Scene behaviour 'SyncedPlayers' needed UnityEngine.Object upgrade pass 这意味着升级是成功的。
    2. 如果您看到错误 Can't remove AudioListener because AudioReverbFilter depends on it,请忽略它,它是一个以让 Reverb 对声部起作用的小 “特性”。

  8. 如果存在类似 [UdonSharp] Empty UdonBehaviour found on (...) 的报错。


    1. 单击该消息可导航到导致这一报错的游戏对象。
    2. 找到空的 UdonBehaviours(Program Source 设置为None)。
    3. 删除这些 UdonBehaviour。

  9. 将 Assets/TLP/UdonUtils/Prefabs/TLP_Logger.prefab 预制件添加到场景中。


  10. 找到 PlayerAudioController,如果已解压缩,请将整个游戏对象替换为 TLP_PlayerAudioController 预制件。


  11. 打开预制件的层次结构并导航到 Configurations 游戏对象。


  12. 进行您的更改,默认情况下,这些更改将应用于每个玩家对 和LocalConfigurationDefaultConfiguration


  13. 最痛的部分:


    1. 查看 层级窗口(Hierarchy)并检查每个 UVU 组件是否有未设置的变量
    2. 在测试过程中,我发现一些对例如 SyncedIntegerArray 在升级后为空。
    3. 如果这些变量是预制件的一部分,请右键单击它们并尝试 Revert 选项 (如果可用),否则, 从子游戏对象中选择相应的组件,或将整个游戏对象替换为 UVU 预制件,然后重新设置它。
    4. 使用 ClientSim 测试您世界中的每个 AudioZone/-Room 并检查 错误控制台。

  14. 最后,有一些脚本不再以 UdonBehaviours 的形状存在,因此场景中可能会有一些空的 UdonBehaviours 。控制台将告诉您有关它们的信息。

    1. UdonMath
    2. UdonCommon
    3. UdonDebug 的 除非解压缩了任何预制件,否则它们应该在升级过程中自动删除。