Unity3D打包發生錯誤 "The type or namespace name `UnityEditor' could not be found"(小心使用)
阿新 • • 發佈:2018-12-17
這句話是說明UnityEditor未發現,主要是某個腳本里寫了關於Editor相關的函式。
首先我們需要知道,使用UnityEditor的時候,一般是在自己專案除錯執行的時候使用,而打包出來生成檔案的時候,這個命令是沒法在檔案中使用的,所以就算不提示錯誤,打包出來也是不能用。
PS:這點尤其重要,因為有些邏輯命令,我們不應該用UnityEditor的相關函式寫,不然打包出來也不能用。
錯誤的解決方法:
首先確保自己想做出打包檔案的邏輯跟UnityEditor無關,然後在UnityEditor前後加上兩個語句就可以了,如下:
#if UNITY_EDITOR //用到編輯器的程式碼 #endif
例子1:
- #if UNITY_EDITOR
- using UnityEditor;
- #endif
例2
- #if UNITY_EDITOR
- UnityEditor.EditorApplication.isPlaying = false;
- #endif
這裡我們還是需要注意到,#if 到#endif 之間的邏輯程式碼,打包出來的時候是無法呼叫的。千萬不要在裡面加入想要實現的邏輯!!
還有一種解決方法:
就是把報錯的指令碼移到Editor資料夾下面也可以,這個資料夾的位置很隨意,放在Asset初始目錄下面就可以。當然其他英文的應該也行。若沒有Editor資料夾,新建一個Editor資料夾就好了。
但是不推薦,除非這個指令碼本身就是隻有Editor相關的,否則,邏輯程式碼不會執行了。