下午的人,
(我已经搜索了一下这个问题的答案,但似乎这是一种罕见的情况,或者我的google-fu不符合标准。如果答案是道歉很明显,在另一个主题中,如果你可以指导我,我就会在路上。)
问题:
似乎无法从Unity构建PC Standalone应用程序,而TangoSDK在项目中导入,即使构建中包含的场景不使用任何Tango资产。
(版本:Unity 5.5.1,TangoSDK Hopak,Windows 10)
复制问题的步骤:
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相关的脚本?这可能会帮助我缩小搜索范围。
答案 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。如果您针对所有错误执行此操作,则不应该有任何问题。