unity3d 如何检查代码是否在任何平台上的Unity中运行

lndjwyie  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(244)

我正在写一个C#库,可以在Unity或任何通用的mono/.NET应用程序中使用。我希望一些代码的行为有所不同,这取决于它是在Unity上下文中运行还是在其他环境中运行。
看看the available #define flags in the Unity Manual,似乎没有一个单一的#define可以覆盖所有平台。

define指令用于编译/执行任何独立平台(Mac OS X,Windows或Linux)的代码。

这意味着要想得到全额保险

#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WII || UNITY_IOS || UNITY_IPHONE || UNITY_ANDROID || UNITY_PS4 || UNITY_XBOXONE || UNITY_TIZEN || UNITY_TVOS || UNITY_WSA || UNITY_WEBGL || UNITY_FACEBOOK

有没有更好的方法来检测代码是否在Unity中运行?

roejwanj

roejwanj1#

为了有一个答案,让我们引用文档(感谢@RetiredNinja评论)
您也可以根据编译或执行给定代码部分所需的Unity最早版本选择性地编译代码。给定与上述相同的版本格式(X.Y),Unity以UNITY_X_Y_OR_NEWER格式公开一个全局#define,您可以为此目的使用。
所以我们可以使用#ifdef UNITY_5_OR_NEWER或其他任何东西。这是我在unity和常规c#代码之间共享的代码位所使用的(特别是在null检查时,因为Unity会覆盖它)

相关问题