我正在开发一个C#库,它既可以作为一些Unity3d项目的插件,也可以用于非Unity3D项目。
我需要使用一些Unity3d类(如UnityEngine.Matrix4x4),并标准化一些函数,以不可知地使用有效类型,以确定该项目是否为Unity项目。
所以,正如标题所说:在非Unity3d库项目中包含Unity3D库的正确方式是什么?我应该在我的项目中只包含对本地Unity3d二进制文件(如UnityEngine.dll)的引用吗?如果是这样,那么哪个文件夹才是查找这些二进制文件的正确文件夹(它们出现在unity安装文件夹中的一些不同的文件夹中)?
发布于 2020-11-29 09:39:45
如果你实际上没有运行Unity引擎来渲染或处理输入,那么无论是在技术上还是在法律上,都可能会强制将圆钉放入方孔中。
最优雅的解决方案可能是使用更多不可知库在C#中编写您的库。例如,您提到的Matrix4x4类在System.Numerics中具有等价物。除了这个库,所需要的只是一个将System.Numerics.Matrix4x4转换为UnityEngine.Matrix4x4的轻量级包装器。有时Unity开发人员自己也会做这样的事情,例如,在ECS平台上比标准Vector3工作得更好的Unity.Mathematics.float3结构。
仅供参考如果您正在寻找某个特定系统的工作原理,请查看C#参考GitHub存储库,例如Matrix4x4 struct。只需注意,‘复制和粘贴’Unity源代码是不允许的。
https://stackoverflow.com/questions/65054243
复制相似问题