.gitignore | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/Tool/AssetSourceSettings.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/Tool/AssetSourceSettings.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/Tool/RemoveMissingScripts.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.gitignore
@@ -53,3 +53,5 @@ /Assets/luaIde.meta /*.code-workspace /Snxxz_Android.userprefs /Assets/VSCode.meta /Assets/VSCode Assets/Editor/Tool/AssetSourceSettings.cs
New file @@ -0,0 +1,44 @@ using UnityEngine; using UnityEditor; namespace Assets.Editor.Tool { public class AssetSourceSettings : EditorWindow { private bool allFromEditor; private bool audioFromEditor; private bool effectFromEditor; private bool mobFromEditor; private bool refdataFromEditor; private bool shaderFromEditor; private bool sceneFromEditor; private bool uiFromEditor; private bool builtInFromEditor; [MenuItem("Tools/资源加载方式")] public static void ShowWindow() { EditorWindow.GetWindow<AssetSourceSettings>("资源加载方式").Show(); } private void OnGUI() { // allFromEditor = EditorGUILayout.Toggle("allFromEditor:", AssetSource.allFromEditor); AssetSource.audioFromEditor = EditorGUILayout.Toggle("audioFromEditor:", AssetSource.audioFromEditor); AssetSource.effectFromEditor = EditorGUILayout.Toggle("effectFromEditor:", AssetSource.effectFromEditor); AssetSource.mobFromEditor = EditorGUILayout.Toggle("mobFromEditor:", AssetSource.mobFromEditor); AssetSource.refdataFromEditor = EditorGUILayout.Toggle("refdataFromEditor:", AssetSource.refdataFromEditor); AssetSource.shaderFromEditor = EditorGUILayout.Toggle("shaderFromEditor:", AssetSource.shaderFromEditor); AssetSource.sceneFromEditor = EditorGUILayout.Toggle("sceneFromEditor:", AssetSource.sceneFromEditor); AssetSource.uiFromEditor = EditorGUILayout.Toggle("uiFromEditor:", AssetSource.uiFromEditor); AssetSource.builtInFromEditor = EditorGUILayout.Toggle("builtInFromEditor:", AssetSource.builtInFromEditor); EditorGUILayout.Space(); if (GUILayout.Button("全部切换")) { AssetSource.allFromEditor = !AssetSource.allFromEditor; } } } } Assets/Editor/Tool/AssetSourceSettings.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 0b2840c0a4ef9304fb735bd3ab3694bc MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Assets/Editor/Tool/RemoveMissingScripts.cs
@@ -52,25 +52,31 @@ count2++; EditorUtility.DisplayProgressBar("Processing...", "遍历丢失脚本Prefab中....", count / pathList.Count); GameObject obj = (GameObject)AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)); getAllChild(obj.transform); checkMissing(obj); getAllChild(obj); } EditorUtility.ClearProgressBar(); } void getAllChild(Transform tf) void getAllChild(GameObject go) { foreach (Transform child in tf) foreach (Transform child in go.transform) { var components = child.GetComponents<Component>(); for (int j = 0; j < components.Length; j++) checkMissing(child.gameObject); getAllChild(child.gameObject); } } void checkMissing(GameObject go) { var components = go.GetComponents<Component>(); for (int j = 0; j < components.Length; j++) { if (components[j] == null) { if (components[j] == null) { missObj.Add(child.gameObject); continue; } missObj.Add(go.gameObject); continue; } getAllChild(child); } }