1. 程式人生 > >Unity3D打包發生錯誤 "The type or namespace name `UnityEditor' could not be found"(小心使用)

Unity3D打包發生錯誤 "The type or namespace name `UnityEditor' could not be found"(小心使用)

這句話是說明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相關的,否則,邏輯程式碼不會執行了。