是否有一种方法可以判断一个项目是否被联合使用,是否被编译成XBOX,Windows,Android.或者还在编辑里
我正在创建一个类,该类将基于System.Numerics.Vector3或UnityEngine.Vector3是否可用,但它不需要仅依赖于来自统一的平台,也不需要依赖于统一,我正在创建一组扩展,希望能够在团结内外使用这些扩展,而不必定义自定义的#define UNITY
我无法为许多平台编译,所以它像#if UNITY_5一样简单吗?
为了澄清我正在创建的软件不会在团结项目中外露地使用,它被设计成几乎在任何地方运行,团结、联合工作方案、粮食计划署、Windows控制台等等。
发布于 2020-05-24 22:23:13
您可以在Uniteddocs-https://docs.unity3d.com/Manual/PlatformDependentCompilation.html上签出依赖于平台的编译。
我想这可能就是你要找的。他们已经准备好了一堆预先准备好的指令,这样你就不用自己发明了。
示例:
#if UNITY_EDITOR
// Do some stuff
#elif UNITY_STANDALONE_WIN
// Do some stuff
#endif发布于 2020-05-24 23:32:18
我正在创建一个类,它将基于System.Numerics.Vector3或UnityEngine.Vector3是否可用,但它不需要依赖于平台,而只依赖于统一
做跨平台的通常方法,是找到“最小的共同点”。团结被设计成跨平台。矢量是每个游戏引擎的核心类型。.NET是Vector3的晚期采用者,只在Framework4.6/Standart 2.1中获得它。但是,对于一个3D游戏引擎来说,它是一个基本的部分。因此,我敢打赌UnityEngine.Vector3在每个版本的Unity中都是可维护的。
如果情况不是这样的话?只需编写自己的Vector3即可。这是一个有3个数字的结构--不是很难复制的东西。下面是一个例子:
//structs should be inmutable. readonly makes sure of that
public readonly struct Vector3 {
int X;
int Y;
int Z;
}我推断它是整数,但显然向量类实际上使用了单位浮点数类型。但是精确的类型是微不足道的区别。
https://stackoverflow.com/questions/61993042
复制相似问题