Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 导入Tango SDK构建Unity PC独立项目时出现编译错误_C#_Android_Unity3d_Unity5_Google Project Tango - Fatal编程技术网

C# 导入Tango SDK构建Unity PC独立项目时出现编译错误

C# 导入Tango SDK构建Unity PC独立项目时出现编译错误,c#,android,unity3d,unity5,google-project-tango,C#,Android,Unity3d,Unity5,Google Project Tango,各位下午好 (我已经搜索了一个公平的问题来回答这个问题,但它似乎是一个罕见的场景,或者我的谷歌FU没有达到标准。道歉如果答案是显而易见的,在另一个线程中,如果你能指引我,我就在我的路上)。 问题是: 在项目中导入TangoSDK时,似乎不可能从Unity构建PC独立应用程序,即使构建中包含的场景不使用任何Tango资产 (版本:Unity 5.5.1、TangoSDK-Hopak、Windows 10) 复制问题的步骤: 创建一个空的Unity项目 导入TangoSDK Unity软件包(经Ei

各位下午好

(我已经搜索了一个公平的问题来回答这个问题,但它似乎是一个罕见的场景,或者我的谷歌FU没有达到标准。道歉如果答案是显而易见的,在另一个线程中,如果你能指引我,我就在我的路上)。 问题是:

在项目中导入TangoSDK时,似乎不可能从Unity构建PC独立应用程序,即使构建中包含的场景不使用任何Tango资产

(版本:Unity 5.5.1、TangoSDK-Hopak、Windows 10)

复制问题的步骤:

  • 创建一个空的Unity项目
  • 导入TangoSDK Unity软件包(经Eisa、Farandole和Hopak版本确认)
  • 创建并保存标准空场景(仅限摄影机和灯光)
  • 打开构建设置并将目标平台设置为“PC Mac&Linux单机版”
  • 单击“构建”
  • 生成过程失败,出现错误:
  • Assets/TangoSDK/Core/Scripts/Common/OrientationManager.cs(62,0):错误 CS1029:#错误:“不支持平台”

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

    我有一种预感,这个问题开始于AndroidHelper界面(在Assets>GoogleUnity>Scripts中),因为它似乎有一些对OrientionManager的引用,但我不知道为什么它会包含在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)
    

    修复了最初的错误,但总的来说问题仍然存在:抛出错误的每一行要么在Tango库中,要么正在使用Tango库,而这些脚本根本不应该被调用,因为我基本上是在构建一个空场景。默认情况下,所有Unity构建中是否包含任何与android相关的脚本?这可能会帮助我缩小搜索范围

    那么,有没有办法将任何与android相关的脚本从应用程序中排除 建造

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

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

    切换到“PC Mac&Linux单机版”以显示错误。尝试构建它以显示错误。在编辑器中双击每个错误的代码行,然后将其放入下面的代码中:

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

    因为TangoSDK支持iOS,所以我也添加了iOS。如果因为所有错误而这样做,您应该不会有任何问题。

    谢谢@Programmer的建议,尽管它不起作用。它确实有助于解决当前的问题,但这只会让构建过程继续进行编译,并且不同的脚本会出现更多的错误。我仍然相信问题在于首先调用的脚本/函数。话虽如此,据我所知,你的建议有助于突出一个不同的(相关的)问题(见OP编辑),这是实现这一点的唯一方法。我建议您重新开始使用一个新的TangoSDK,但这次,将每个脚本包装在TangoSDK中,放入
    #if UNITY_ANDROID | | UNITY_IOS
    #endif
    中。每个脚本中的每一个代码。这个答案帮助我指出了正确的方向,结果是有一些恶意的触摸屏主板请求导致了这个问题。谢谢Prog!
    #if UNITY_ANDROID || UNITY_IOS
    //PUT THAT LINE OF CODE THAT IS CAUSING THE ERROR HERE
    #endif