首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用#if UNITY_EDITOR return而不是#if !UNITY_EDITOR来查看代码编辑器中的引用,是不是一个好主意?

使用#if UNITY_EDITOR return而不是#if !UNITY_EDITOR来查看代码编辑器中的引用,是不是一个好主意?
EN

Stack Overflow用户
提问于 2021-11-22 13:18:39
回答 1查看 134关注 0票数 2

我正在开发一个现有的移动应用程序。下面是一些类似的情况:

代码语言:javascript
运行
复制
private void Example()
{
    //some universal code
#if UNITY_EDITOR
    return;
#endif

#pragma warning disable CS0162 // Unreachable code detected
    //some mobile platform code
#pragma warning restore CS0162 // Unreachable code detected
}

我会像这样在过去实现它:

代码语言:javascript
运行
复制
private void Example()
{
    //some universal code
#if !UNITY_EDITOR
    //some mobile platform code
#endif
}

UNITY_EDITOR版本看起来非常丑陋,我无法在函数的末尾添加通用代码。另一方面,当在编辑器中工作时,它的优点是能够找到对移动代码的引用。

我是不是漏掉了什么?有没有可能改变Visual Studio,让它在!UNITY_EDITOR代码中找到引用并突出显示代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-22 17:05:31

你说得对,这看起来确实很丑陋。在我的项目中,我发送了一个定义平台设置的文件,在这里我会这样利用它:

代码语言:javascript
运行
复制
public static class ApplicationSettings
{

#if UNITY_EDITOR
        public static bool IsUnityEditor = true;
#else
        public static bool IsUnityEditor = false;
#endif
#if PLATFORM_STANDALONE_WIN
        public static bool IsPlatformStandaloneWin = true;
#else
        public static bool IsPlatformStandaloneWin = false;
#endif
... etc ...
}

然后,如果你的代码库确实基于平台做了特定的事情,那么就在这个条件上进行分支。

代码语言:javascript
运行
复制
public void Example()
{
    if (ApplicationSettings.IsPlatformStandaloneWin)
        StandaloneWindowsExample(); // windows specific
    else
        EveryoneElseExample(); // other platforms:

    ... // code that applies to all platforms 
}

或者甚至为您所支持的平台定义您自己的枚举,并打开它的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70066390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档