下午鄉親,編譯錯誤與探戈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