下午乡亲,编译错误与探戈SDK进口
(我已搜索周围公平一点的答案,这个问题,但似乎它要么罕见的情况下,或我的谷歌福是没有达到标准,如果道歉答案是显而易见的,在另一个线程,如果你能告诉我,我想我的路)
的问题:。
它看起来不可能从Unity创建PC独立应用程序,而TangoSDK被导入到项目中,即使构建中包含的场景不适合我们e任何Tango资产。
(版本:5.5.1团结,TangoSDK Hopak时,Windows 10)
步骤来复制问题:
- 创建一个空的团结工程。
- 导入TangoSDK统一包(带版本EISA,Farandole证实,Hopak)
- 创建并保存一个标准的空场景(摄像头和光线只)
- 打开生成设置和目标平台设置为“PC的Mac & Linux的孤立”
- 点击 '生成'
- 构建过程失败,出现错误:
Assets/TangoSDK/Core/Scripts/Common/OrientationManager.cs(62,0): error CS1029: #error: 'not supported platform'
的我试图这样做的原因是因为我们正在构建一个跨平台的应用程序,其中该应用程序的移动版本正在使用Tango。一个明显的解决方法是创建2个不同的项目,一个用于加载TangoSDK的android部署,一个用于桌面,没有Tango库。但是由于版本之间有很多共享资源,所以将所有内容都放在一个项目中显然要高效得多,所以我试图找到一种解决方案,不涉及我现在将开发跨2个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)
修正原来的错误,但整体而言,问题仍然存在:即抛出一个错误每行是在探戈库或使用探戈库,当这些脚本根本不应该被调用时,因为我基本上构建了一个空的场景。默认情况下,所有Unity版本中是否包含与Android相关的脚本?这可能会帮助我缩小搜索范围。
感谢@Programmer的建议,尽管它没有奏效。它确实帮助解决了当前的问题,但这只是让编译过程继续进行编译,并且从不同的脚本开始显示更多的错误。我仍然相信问题在于脚本/函数首先被调用。话虽如此,您的建议帮助突出了一个不同的(相关)问题(请参阅OP编辑) – cheliotk
据我所知,这是唯一的方法。我建议你重新开始一个新的TangoSDK,但这一次,将每个脚本包装在'#if UNITY_ANDROID ||内的TangoSDK中。 UNITY_IOS'和'#endif'。每个脚本中的每个代码。 – Programmer
这个答案帮助我指出了正确的方向,结果发现有几个流氓TouchScreenKeyboard请求导致了这个问题。谢谢Prog! – cheliotk