我在 Unity3D 的游戏项目中有许多脚本(MonoBehaviour),其中许多脚本被我的场景中的游戏对象引用。
现在我想将其中一些脚本移动到一个单独的程序集(类库)中,因为我们需要在其他项目中使用它们并且我们希望改进我们的代码组织。
因此,当我将脚本移动到这个外部类库项目并将 .dll 放入 Unity3D 资产文件夹中时,引用移动脚本的所有游戏对象都会发出有关“缺少(单脚本)”的警告。
我想 Unity3D 通过脚本名称和程序集名称来跟踪脚本引用。
有谁知道解决这个问题的方法吗?
不幸的是,Unity 中没有自动执行此操作的方法。你是正确的,Unity 维护了对 MonoBehaviour 的引用。您有几个选择,但没有一个是理想的:
选项 1:将项目中当前的 MonoBehaviours 重命名为“MB_XXX”,其中 XXX 是脚本的名称。通过 Unity 编辑器执行此操作,Unity 将维护引用。然后导入已编译的 DLL,其中包含 MonoBehaviours 以及您实际想要使用的名称。检查每个对象,从 DLL 中添加适当的 MonoBehaviour 并删除 MB_XXX 行为。使用 Asset Store 中的一项 Unity 资源将数据从一个 MonoBehaviour 复制到另一个 MonoBehaviour,这样您就不必重新输入设置。
选项 2:创建一个 shell 脚本,将资产中的引用 ID(以文本格式保存资产)从当前使用的 MonoBehaviour 更改为 DLL 中的引用 ID。幸运的是,Unity 允许您拥有同名的 MonoBehaviours,至少在您尝试运行游戏之前是这样。您将需要获取 DLL 中每个 MonoBehaviours 的引用 ID - 您可以通过将 DLL 中的所有 MonoBehaviours 添加到空 GameObject,然后查看生成的资源文件以查看引用 ID 来实现此目的。
不幸的是,这些都不是理想的解决方案,您只能即兴发挥。
归档时间: |
|
查看次数: |
3044 次 |
最近记录: |