在使用导入的Tango SDK构建Unity PC Standalone项目时编译错误

时间:2017-05-25 12:07:12

标签: c# android unity3d unity5 google-project-tango

下午的人,

(我已经搜索了一下这个问题的答案,但似乎这是一种罕见的情况,或者我的google-fu不符合标准。如果答案是道歉很明显,在另一个主题中,如果你可以指导我,我就会在路上。)

问题:

似乎无法从Unity构建PC Standalone应用程序,而TangoSDK在项目中导入,即使构建中包含的场景不使用任何Tango资产。

(版本:Unity 5.5.1,TangoSDK Hopak,Windows 10)

复制问题的步骤:

  1. 创建一个空的Unity项目。
  2. 导入TangoSDK Unity软件包(使用Eisa,Farandole,Hopak版本确认)
  3. 创建并保存标准空场景(仅适用于相机和灯光)
  4. 打开构建设置并将目标平台设置为“PC Mac& amp; Linux Standalone'
  5. 点击“构建'
  6. 构建过程失败,错误:
  7.   

    Assets / TangoSDK / Core / Scripts / Common / OrientationManager.cs(62,0):错误   CS1029:#error:'不支持平台'

    我尝试这样做的原因是因为我们正在构建一个跨平台应用,其中应用的移动版本正在使用Tango。一个明显的解决方法是创建2个不同的项目,一个用于装载TangoSDK的android部署,一个用于桌面,没有Tango库。但由于版本之间存在大量共享资产,因此将所有内容集中在一个项目中显然要高效得多,因此我试图找到一种不会让我将开发分成两部分的解决方案。 Unity目前正在进行项目。

    我预感到这个问题是从AndroidHelper接口开始的(在Assets> Google-Unity> Scripts中),因为它似乎有一些对OrientationManager的引用,但是我对它为什么& #39;被包含在PC版本中。

    有没有办法从构建中排除任何与Android相关的脚本? 感谢

    修改

    这里有更多的信息,经过一些更多的探讨。原始错误是由于遗漏,这是原始代码提供错误:

            public static ScreenOrientation GetScreenOrientation()
            {
    #if (UNITY_EDITOR || UNITY_STANDALONE_OSX)
                if (Screen.width > Screen.height)
                {
                    return ScreenOrientation.LandscapeLeft;
                }
                else
                {
                    return ScreenOrientation.Portrait;
                }
    #elif (UNITY_IPHONE || UNITY_ANDROID)
                return Screen.orientation; 
    #else 
    #error not supported platform
    #endif
            }
    

    第一个平台检查未涵盖UNITY_STANDALONE_WIN(Windows平台),因此导致错误。替换行

    #if (UNITY_EDITOR || UNITY_STANDALONE_OSX)
    

    #if (UNITY_EDITOR || UNITY_STANDALONE)
    

    修复了原始错误,但总体上问题仍然存在:每个抛出错误的行都在Tango库中或正在使用Tango库,而这些脚本根本不应该被调用,因为我&#39 ; m基本上是建立一个空场景。默认情况下,所有Unity版本中是否包含任何与Android相关的脚本?这可能会帮助我缩小搜索范围。

1 个答案:

答案 0 :(得分:0)

  

有没有办法从中排除任何与Android相关的脚本   建?

首先,这应该是制作TangoSDK的人的工作。他们可能忘记这样做了。我建议你联系他们并报告这个问题。

解决方法是修改TangoSDK并使用Unity平台指令自行修复它,直到修复它为止。

切换到PC Mac& Linux Standalone'使错误出现。尝试构建它以使错误出现。通过从编辑器中双击它来查找每个错误的代码行,然后将其放在下面的代码中:

#if UNITY_ANDROID || UNITY_IOS
//PUT THAT LINE OF CODE THAT IS CAUSING THE ERROR HERE
#endif

由于TangoSDK支持iOS,我也加入了iOS。如果您针对所有错误执行此操作,则不应该有任何问题。