2017-05-25 98 views
0

下午鄉親,編譯錯誤與探戈SDK進口

(我已搜索周圍公平一點的答案,這個問題,但似乎它要麼罕見的情況下,或我的谷歌福是沒有達到標準,如果道歉答案是顯而易見的,在另一個線程,如果你能告訴我,我想我的路)

的問題:。

它看起來不可能從Unity創建PC獨立應用程序,而TangoSDK被導入到項目中,即使構建中包含的場景不適合我們e任何Tango資產。

(版本:5.5.1團結,TangoSDK Hopak時,Windows 10)

步驟來複制問題:

  1. 創建一個空的團結工程。
  2. 導入TangoSDK統一包(帶版本EISA,Farandole證實,Hopak)
  3. 創建並保存一個標準的空場景(攝像頭和光線只)
  4. 打開生成設置和目標平臺設置爲「PC的Mac & Linux的孤立」
  5. 點擊 '生成'
  6. 構建過程失敗,出現錯誤:

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相關的腳本?這可能會幫助我縮小搜索範圍。

回答

0

Is there a way then to exclude any android-relevant scripts from the build?

所有的杉杉,這應該是取得了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到這一點。如果您對所有錯誤執行此操作,則不應該有任何問題。

+0

感謝@Programmer的建議,儘管它沒有奏效。它確實幫助解決了當前的問題,但這只是讓編譯過程繼續進行編譯,並且從不同的腳本開始顯示更多的錯誤。我仍然相信問題在於腳本/函數首先被調用。話雖如此,您的建議幫助突出了一個不同的(相關)問題(請參閱OP編輯) – cheliotk

+0

據我所知,這是唯一的方法。我建議你重新開始一個新的TangoSDK,但這一次,將每個腳本包裝在'#if UNITY_ANDROID ||內的TangoSDK中。 UNITY_IOS'和'#endif'。每個腳本中的每個代碼。 – Programmer

+1

這個答案幫助我指出了正確的方向,結果發現有幾個流氓TouchScreenKeyboard請求導致了這個問題。謝謝Prog! – cheliotk