Unity3d 載入UnityEngine.UI.dll失敗的解決方案(2017.2)
阿新 • • 發佈:2019-02-17
在 Unity 官方論壇找到的解決方法是重新載入 UnityEngine.UI.dll ,把下面的指令碼扔到專案裡,然後右鍵選單中就會出現
編寫一個這樣的指令碼
using UnityEngine; using System.Collections.Generic; using UnityEditor; using System.Text.RegularExpressions; using System.IO; using System.Text; public class ReimportUnityEngineUI { [MenuItem("Assets/Reimport UI Assemblies", false, 100)] public static void ReimportUI() { #if UNITY_4_6 var path = EditorApplication.applicationContentsPath + "/UnityExtensions/Unity/GUISystem/{0}/{1}"; var version = Regex.Match(Application.unityVersion, @"^[0-9]+\.[0-9]+\.[0-9]+").Value; #elif UNITY_4_7 var path = EditorApplication.applicationContentsPath + "/UnityExtensions/Unity/GUISystem/{0}/{1}"; var version = Regex.Match(Application.unityVersion, @"^[0-9]+\.[0-9]+\.[0-9]+").Value; #else var path = EditorApplication.applicationContentsPath + "/UnityExtensions/Unity/GUISystem/{1}"; var version = string.Empty; #endif string engineDll = string.Format(path, version, "UnityEngine.UI.dll"); string editorDll = string.Format(path, version, "Editor/UnityEditor.UI.dll"); ReimportDll(engineDll); ReimportDll(editorDll); } static void ReimportDll(string path) { if (File.Exists(path)) AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate | ImportAssetOptions.DontDownloadFromCacheServer); else Debug.LogError(string.Format("DLL not found {0}", path)); } }
編譯後在編輯器介面點選操作執行。