繁体   English   中英

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

[英]Compile Errors when building a Unity PC Standalone project with the Tango SDK imported

下午的人们,

(我一直在寻找有关此问题的答案,但似乎这是一种罕见的情况,或者我的google-fu达不到标准。如果答案很明显,则道歉;如果您的回答是其他问题,则表示歉意。可以指引我,我会在路上。)

问题:

尽管TangoSDK已导入到项目中,但即使在构建中包含的场景未使用任何Tango资产的情况下,似乎也无法从Unity构建PC Standalone应用程序。

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

复制问题的步骤:

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

资产/ TangoSDK /核心/脚本/公共/OrientationManager.cs(62,0):错误CS1029:#错误:“不受支持的平台”

我尝试这样做的原因是因为我们正在构建一个跨平台应用程序,该应用程序的移动版本正在使用Tango。 一个明显的解决方法是创建2个不同的项目,一个用于在TangoSDK加载的情况下用于android部署,一个在没有Tango库的情况下用于台式机。 但是由于版本之间有很多共享资产,所以将所有内容都放在一个项目中显然要高效得多,因此我试图找到一种解决方案,该解决方案目前不涉及将开发分为两个Unity项目。

我直觉这个问题始于AndroidHelper界面(在Assets> Google-Unity> Scripts中),因为它似乎对OrientationManager进行了一些引用,但是对于为什么将它包含在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库,而这些脚本根本就不会被调用,因为我实质上是在构建一个空的场景。 默认情况下,所有Unity构建中都包含任何与Android相关的脚本吗? 这可能有助于我缩小搜索范围。

有没有办法从构建中排除任何与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。 如果针对所有错误执行此操作,则不会有任何问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM