不幸的是,在 Unity 中没有自动执行此操作的方法。您是正确的,因为 Unity 维护了对 MonoBehaviour 的引用。你有几个选择,没有一个是理想的:
选项 1:将项目中当前的 MonoBehaviours 重命名为“MB_XXX”,其中 XXX 是脚本的名称。通过 Unity 编辑器执行此操作,Unity 将维护参考。然后使用您实际想要使用的名称导入您编译的 DLL,其中包含 MonoBehaviours。通过从 DLL 中添加适当的 MonoBehaviour 并删除 MB_XXX 行为的每个对象。使用 Asset Store 中的一个 Unity 资源将数据从一个 MonoBehaviour 复制到另一个,这样您就不必重新输入设置。
选项 2:创建一个 shell 脚本,将资产中的引用 ID(以文本格式保存您的资产)从您当前使用的 MonoBehaviour 更改为 DLL 中的引用 ID。幸运的是,Unity 允许您拥有同名的 MonoBehaviours,至少在您尝试运行游戏之前是这样。您将需要获取 DLL 中每个 MonoBehaviours 的参考 ID - 您可以通过将 DLL 中的所有 MonoBehaviours 添加到一个空的 GameObject 然后查看生成的资产文件以查看参考 ID 来实现这一点.
不幸的是,这些都不是理想的解决方案,你只需要动起来。