【发布时间】:2018-08-10 01:37:33
【问题描述】:
我使用 Unity 引擎创建游戏,想要强大的插件系统。
- 插件作者可以使用 Unity 资源包向游戏添加新资源
- 插件作者可以使用 C# 运行时向游戏添加新代码,或者我什至可以使用 Asset Store 中的此类插件,例如 ModTool 或 UMod
- 如果我将游戏中的代码编译为单独的 .dll 文件,插件作者事件可以使用和扩展代码
但是……
插件作者如何在不复制它们的情况下重复使用我的游戏中的资源(例如特定的着色器、材质、纹理或预制件)?
想象一下,那个作者想要创建特定的场景并使用我库中的大量现有对象,或者只是为他们的项目添加一些独特的着色器。我现在看到的唯一方法是将插件完整游戏作为 Asset Bundle 导入,删除所有冗余部分并作为插件 Asset Bundle 导出,但在这种情况下,所有项目都将被复制,批处理将被破坏,插件的大小将膨胀了。
这部分的主要问题是很多功能(除了核心之外的所有功能:例如单元、建筑物等)我希望将其视为单独的插件,它们重用一些核心代码和核心资源。
【问题讨论】:
标签: c# unity3d plugins assetbundle