//递归枚举通过这个目录读出来的某个GObject以及其子节的gameobject public static IEnumerable <GameObject> EunmAllGameObjectRecursiveAtPath(string Path) { if (Path.Contains(".asset")) { yield break; } var objects = AssetDatabase.LoadAssetAtPath(Path, typeof(GameObject)); if (objects != null) { if (objects.GetType().ToString() == "UnityEngine.GameObject") { GameObject mpGameObject = objects as GameObject; { // foreach(var aa in EnumAssets.EnumGameObjectRecursive(mpGameObject)) var __enumerator13 = (EnumAssets.EnumGameObjectRecursive(mpGameObject)).GetEnumerator(); while (__enumerator13.MoveNext()) { var aa = __enumerator13.Current; { if (aa != null) { yield return(aa); } } } } } } yield break; }
public void Find() { string log = ""; if (null != Atlas) { log = LogSpriteName(Atlas); Debug.Log(log); return; } EditorUtility.DisplayProgressBar("Export Atlas Sprite Name", "loading...", 0); var gos = EnumAssets.EnumAssetAtPath <GameObject>("Assets/Res"); foreach (var go in gos) { EditorUtility.DisplayProgressBar("Export Atlas Sprite Name", go.name, 0); var atlas = go.GetComponent <UIAtlas>(); if (null != atlas) { log += LogSpriteName(atlas); } } EditorUtility.ClearProgressBar(); Debug.Log(log); }
public static void OpenDialog() { var cs = EnumAssets.EnumComponentRecursiveInCurrentSelection <UISprite>(); string resultFile = Application.dataPath + "/" + "Result.txt"; FindImpl(cs, resultFile); }
//Animator如果不带Controller或是带Controller但是没有设置动作的 也直接去掉,不用再添加Animation public static bool ChangeAnimatorToAnimation() { string str = ""; Debug.Log("ChangeAnimatorToAnimation----------------begin"); int i = 0; { // foreach(var go in EnumAssets.EnumComponentRecursiveInCurrentSelection<Animator>()) var __enumerator1 = (EnumAssets.EnumComponentRecursiveInCurrentSelection <Animator>()).GetEnumerator(); while (__enumerator1.MoveNext()) { var go = __enumerator1.Current; { var g = go.gameObject; AnimationOptimizing(go); str += "[" + g.transform.FullPath() + "]\n"; i++; } } } if (!string.IsNullOrEmpty(str)) { Debug.Log(str); } Debug.Log("ChangeAnimatorToAnimation-Total=[" + i.ToString() + "]---------------end"); return(true); }
//Animator如果不带Controller或是带Controller但是没有设置动作的 也直接去掉,不用再添加Animation public static bool FindUseAnimationPrefab() { string str = ""; Debug.Log("Find Use Animation Prefab----------------begin"); int i = 0; { // foreach(var c in EnumAssets.EnumComponentRecursiveInCurrentSelection<Animation>()) var __enumerator6 = (EnumAssets.EnumComponentRecursiveInCurrentSelection <Animation>()).GetEnumerator(); while (__enumerator6.MoveNext()) { var c = __enumerator6.Current; { if (c.GetClipCount() <= 0 || null == c.clip) { continue; } var go = c.gameObject; str += AssetDatabase.GetAssetPath(go.GetInstanceID()); str += "[" + go.transform.FullPath() + "]\n"; i++; } } } if (!string.IsNullOrEmpty(str)) { Debug.Log(str); } Debug.Log("Find Use Animation Prefab-Total=[" + i.ToString() + "]---------------end"); return(true); }
void OnWizardOtherButton() { if (mRoot == null) { { // foreach(var p in UIPanel.list.ToArray()) var __enumerator1 = (UIPanel.list.ToArray()).GetEnumerator(); while (__enumerator1.MoveNext()) { var p = (UIPanel)__enumerator1.Current; { p.gameObject.SetActive(false); } } } mRoot = new GameObject("root"); mRoot.AddComponent <UIPanel>(); mRootPanel = mRoot.GetComponent <UIPanel>(); mGos = EnumAssets.EnumGameObjectAtPath(Path); mCount = mGos.ToList().Count; } mIndex = 0; mGosEnumerator = mGos.GetEnumerator(); GetNextObj(); mTimer = DateTime.Now; }
private static List <UILabel> FindUILabel() { var list = new List <UILabel>(); var cs = EnumAssets.EnumComponentRecursiveInCurrentSelection <UILabel>(); int i = 0; int processed = 0; int count = cs.Count(); { // foreach(var go in gos) var __enumerator2 = (cs).GetEnumerator(); while (__enumerator2.MoveNext()) { var c = __enumerator2.Current; { EditorUtility.DisplayProgressBar("Find Unprocessed UILabel In Selection", c.gameObject.name, i * 1.0f / count); i++; if (!NeedProcess(c)) { continue; } list.Add(c); } } } EditorUtility.ClearProgressBar(); return(list); }
public static void Find() { Dictionary <string, List <string> > dictLog = new Dictionary <string, List <string> >(); var cs = EnumAssets.EnumComponentRecursiveInCurrentSelection <UISprite>(); EditorUtility.DisplayProgressBar("Export Atlas Reference", "Collecting Component", 0); int count = cs.Count(); int i = 0; int n = 0; { // foreach(var c in cs) var __enumerator1 = (cs).GetEnumerator(); while (__enumerator1.MoveNext()) { var c = __enumerator1.Current; { i++; EditorUtility.DisplayProgressBar("Export Atlas Reference", c.gameObject.name, i * 1.0f / count); var atlas = c.atlas; if (null == atlas) { continue; } List <string> listString = null; if (!dictLog.TryGetValue(atlas.name, out listString)) { listString = new List <string>(); dictLog.Add(atlas.name, listString); } n++; var temp = "(" + c.spriteName + ") " + c.transform.FullPath(); listString.Add(temp); } } } EditorUtility.ClearProgressBar(); string log = string.Empty; foreach (var pair in dictLog) { foreach (var str in pair.Value) { log += "[" + pair.Key + "]" + str + "\n"; } } Debug.Log(log); //Debug.Log("Using [" + AtlasName + "] Total=" + n.ToString() + "------------------------------------------end"); }
public static void DeleteSpriteRenderer() { const string assetPath = "Assets/Res/UI"; DeleteSpriteRenderer( EnumAssets.EnumAllComponentDependenciesRecursive <SpriteRenderer>( EnumAssets.EnumAssetAtPath <UnityEngine.Object>(assetPath))); }
//递归枚举GameObject以及其子节点所依赖的gameobject public static IEnumerable <GameObject> EnumAllGameObjectDependenciesRecursive(IEnumerable <UnityEngine.Object> gos) { int c = gos.Count(); var modelArray = new string[c]; int i = 0; { // foreach(var go in gos) var __enumerator14 = (gos).GetEnumerator(); while (__enumerator14.MoveNext()) { var go = __enumerator14.Current; { modelArray[i++] = AssetDatabase.GetAssetPath(go.GetInstanceID()); } } } string log = ""; var dep = AssetDatabase.GetDependencies(modelArray); var processed = 0; var count = dep.Length; for (i = 0; i < count; i++) { var path = dep[i]; if (string.IsNullOrEmpty(path)) { continue; } if (path.Contains(".asset")) { continue; } var objects = AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)); if (objects != null) { GameObject mpGameObject = objects as GameObject; var temp = EnumAssets.EnumGameObjectRecursive(mpGameObject); { // foreach(var aa in temp) var __enumerator15 = (temp).GetEnumerator(); while (__enumerator15.MoveNext()) { var aa = __enumerator15.Current; { if (aa != null) { yield return(aa); } } } } } } }
private static bool RemoveSameMeshColliderInIEnumer(string Path) { if (Path == null) { return(false); } RemoveSameMeshCollider(EnumAssets.EunmAllGameObjectRecursiveAtPath(Path)); return(true); }
public static bool ChangeAnimatorToAnimationInPath(string ASSET_PATH) { EditorUtility.DisplayProgressBar("Change Animator to Animation in Path", "Collecting MeshRenderer Components", 0); string str = ""; Debug.Log("ChangeAnimatorToAnimation----------------begin"); int i = 0; var gos = EnumAssets.EnumAllComponentDependenciesRecursive <Animator>( EnumAssets.EnumAssetAtPath <UnityEngine.Object>(ASSET_PATH)); int total = 0; { // foreach(var c in gos) var __enumerator3 = (gos).GetEnumerator(); while (__enumerator3.MoveNext()) { var c = __enumerator3.Current; { total++; } } } { // foreach(var go in gos) var __enumerator4 = (gos).GetEnumerator(); while (__enumerator4.MoveNext()) { var go = __enumerator4.Current; { EditorUtility.DisplayProgressBar("Change Animator to Animation in Path", go.gameObject.name, i * 1.0f / total); var g = go.gameObject; AnimationOptimizing(go); str += "[" + g.transform.FullPath() + "]\n"; i++; } } } EditorUtility.ClearProgressBar(); if (!string.IsNullOrEmpty(str)) { Debug.Log(str); } AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); Debug.Log("ChangeAnimatorToAnimation-Total=[" + i.ToString() + "]---------------end"); return(true); }
public int Find1(ref string log) { if (string.IsNullOrEmpty(AtlasName)) { return(0); } var temp = AtlasName.ToLower(); var spriteNameTemp = SpriteName.ToLower(); var cs = EnumAssets.EnumComponentRecursiveInCurrentSelection <UISprite>(); EditorUtility.DisplayProgressBar("FindAtlasReference", "Collecting Component", 0); int count = cs.Count(); int i = 0; int n = 0; { // foreach(var c in cs) var __enumerator1 = (cs).GetEnumerator(); while (__enumerator1.MoveNext()) { var c = __enumerator1.Current; { i++; EditorUtility.DisplayProgressBar(AtlasName, c.gameObject.name, i * 1.0f / count); var atlas = c.atlas; if (null == atlas) { continue; } var atlasName = atlas.name.ToLower(); if (atlasName.Contains(temp)) { if (string.IsNullOrEmpty(SpriteName)) { n++; log += "(" + atlas.name + "/" + c.spriteName + ") " + c.transform.FullPath() + "\n"; } else { var spritename = c.spriteName.ToLower(); if (spritename.Equals(spriteNameTemp)) { n++; log += "(" + atlas.name + "/" + c.spriteName + ") " + c.transform.FullPath() + "\n"; } } } } } } return(n); }
public void Find3() { if (string.IsNullOrEmpty(AtlasName)) { return; } var temp = AtlasName.ToLower(); var cs = EnumAssets.EnumComponentRecursiveInCurrentSelection <UILabel>(); EditorUtility.DisplayProgressBar("FindAtlasReference", "Collecting Component", 0); int count = cs.Count(); int i = 0; int n = 0; string log = string.Empty; { // foreach(var c in cs) var __enumerator3 = (cs).GetEnumerator(); while (__enumerator3.MoveNext()) { var c = __enumerator3.Current; { i++; EditorUtility.DisplayProgressBar(AtlasName, c.gameObject.name, i * 1.0f / count); var font = c.font; if (null == font) { continue; } var atlas = font.atlas; if (null == atlas) { continue; } var atlasName = font.atlas.name.ToLower(); if (atlasName.Contains(temp)) { n++; log += "(" + atlas.name + ") " + c.transform.FullPath() + "\n"; } } } } if (!string.IsNullOrEmpty(log)) { Debug.Log(log); } //Debug.Log("Using [" + AtlasName + "] Total=" + n.ToString() + "------------------------------------------end"); }
//优化资源 public static void OptimizingScenePrefab() { const string ASSET_PATH = "Assets/Res/Scene"; RemoveSameMeshColliderComponent.RemoveSameMeshColliderInEnumAssetAtPath(EnumAssets.EnumAssetAtPath <UnityEngine.Object>(ASSET_PATH)); ShadowsCloseTools.CloseShadows(EnumAssets.EnumAllComponentDependenciesRecursive <Renderer>(EnumAssets.EnumAssetAtPath <UnityEngine.Object>(ASSET_PATH))); //AnimationClipTool.ChangeAnimatorToAnimationInPath(ASSET_PATH); T4MComponentDisable.T4MComponentDisablemethod(EnumAssets.EnumAllComponentDependenciesRecursive <T4MObjSC>(EnumAssets.EnumAssetAtPath <UnityEngine.Object>(ASSET_PATH))); DrawcallOptimize.DrawcallOptimizemethod(ASSET_PATH); }
private static void ResetModelProperties() { EditorUtility.DisplayProgressBar("Optimize Resource/Reset Model Properties", "Collecting FBX", 0); var gos = EnumAssets.EnumInCurrentSelection <UnityEngine.Object>(); ResetObjectModelProperties(gos); /* * List<string> list = new List<string>(); * { * // foreach(var go in gos) * var __enumerator5 = (gos).GetEnumerator(); * while (__enumerator5.MoveNext()) * { * var go = __enumerator5.Current; * { * var path = AssetDatabase.GetAssetPath(go.GetInstanceID()); * if ((path.Contains(".FBX") || path.Contains(".fbx")) && !path.Contains(".meta")) * { * list.Add(path); * } * } * } * } * * int i = 0; * string log = ""; * { * var __list6 = list; * var __listCount6 = __list6.Count; * for (int __i6 = 0; __i6 < __listCount6; ++__i6) * { * var path = __list6[__i6]; * { * EditorUtility.DisplayProgressBar("Optimize Resource/Reset Model Properties", path, i * 1.0f / list.Count); * log += path + "\n"; * ResetProperty(path); * i++; * } * } * } */ AssetDatabase.Refresh(); // if (!string.IsNullOrEmpty(log)) // { // Debug.Log(log); // } EditorUtility.ClearProgressBar(); //EditorUtility.DisplayDialog("Optimize Resource/Reset Model Properties", "Done Total=" + list.Count.ToString(), "OK"); }
public void Do() { if (null == TargetFont) { return; } var font = TargetFont as Font; if (null == font) { Logger.Debug("TargetFont is not fount"); return; } var cs = EnumAssets.EnumComponentRecursiveInCurrentSelection <UIFont>(); EditorUtility.DisplayProgressBar("FindAtlasReference", "Collecting Component", 0); int count = cs.Count(); int i = 0; string log = string.Empty; { // foreach(var c in cs) var __enumerator1 = (cs).GetEnumerator(); while (__enumerator1.MoveNext()) { var c = __enumerator1.Current; { if (null == c.dynamicFont) { continue; } c.dynamicFont = font; i++; EditorUtility.DisplayProgressBar(font.name, c.gameObject.name, i * 1.0f / count); } } } if (!string.IsNullOrEmpty(log)) { Debug.Log(log); } Debug.Log("Using [" + font.name + "] Total=" + i.ToString() + "------------------------------------------end"); if (i > 0) { AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); } }
public static bool FindMissingScriptInCurrentSelection() { string str = ""; Debug.Log("Find Missing Script----------------begin"); EditorUtility.DisplayProgressBar("Find Missing Script In Selection", "", 0); var gos = EnumAssets.EnumGameObjectRecursiveInCurrentSelection(); int i = 0; int processed = 0; int count = gos.Count(); { // foreach(var go in gos) var __enumerator2 = (gos).GetEnumerator(); while (__enumerator2.MoveNext()) { var go = __enumerator2.Current; { EditorUtility.DisplayProgressBar("Find Missing Script In Selection", go.name, i * 1.0f / count); i++; var cs = go.GetComponents <Component>(); foreach (var c in cs) { if (null != c) { continue; } str += AssetDatabase.GetAssetPath(go.GetInstanceID()); str += " [" + go.gameObject.transform.FullPath() + "]\n"; processed++; } } } } EditorUtility.ClearProgressBar(); if (!string.IsNullOrEmpty(str)) { Debug.Log(str); } Debug.Log("Find Missing Script Total=[" + processed.ToString() + "]---------------end"); return(true); }
//优化资源 public static void OptimizingResDirectory() { const string ASSET_PATH = "Assets/Res"; ShadowsCloseTools.CloseShadows(EnumAssets.EnumComponentRecursiveAtPath <Renderer>(ASSET_PATH + "/Model")); OptimizingPropertiesOfModelResources.ResetObjectModelProperties(EnumAssets.EnumAssetAtPath <UnityEngine.Object>(ASSET_PATH + "/Model")); OptimizingPropertiesOfModelResources.ResetObjectModelProperties(EnumAssets.EnumAssetAtPath <UnityEngine.Object>(ASSET_PATH + "/Scene")); OptimizeTextureProperty.ResetTextureProperty(EnumAssets.EnumAssetAtPath <UnityEngine.Object>(ASSET_PATH + "/Model")); OptimizeTextureProperty.ResetTextureProperty(EnumAssets.EnumAssetAtPath <UnityEngine.Object>(ASSET_PATH + "/Effect")); //AnimationClipTool.ChangeAnimatorToAnimation(); //T4MComponentDisable.T4MComponentDisablemethod(); }
//Animator如果不带Controller或是带Controller但是没有设置动作的 也直接去掉,不用再添加Animation public static bool ChangeAnimationClips() { string str = ""; Debug.Log("ChangeAnimatorToAnimation----------------begin"); int i = 0; { // foreach(var go in EnumAssets.EnumComponentRecursiveInCurrentSelection<Animation>()) var __enumerator2 = (EnumAssets.EnumComponentRecursiveInCurrentSelection <Animation>()).GetEnumerator(); while (__enumerator2.MoveNext()) { var go = __enumerator2.Current; { var g = go.gameObject; var animation = g.GetComponent <Animation>(); AnimationClip mCilp = animation.clip; if (null != mCilp) { AnimationUtility.SetAnimationType(mCilp, ModelImporterAnimationType.Legacy); if (AnimationUtility.GetAnimationClips(animation).Length == 0) { AnimationUtility.SetAnimationClips(animation, new AnimationClip[] { mCilp }); } UnityEditor.EditorUtility.SetDirty(mCilp); } UnityEditor.EditorUtility.SetDirty(g); str += "[" + g.transform.FullPath() + "]\n"; i++; } } } if (!string.IsNullOrEmpty(str)) { Debug.Log(str); } Debug.Log("ChangeAnimatorToAnimation-Total=[" + i.ToString() + "]---------------end"); return(true); }
private static void PrintSoundFileLength() { string log = ""; var gos = EnumAssets.EnumInCurrentSelection <UnityEngine.Object>(); foreach (var go in gos) { var path = AssetDatabase.GetAssetPath(go.GetInstanceID()); var audio = Resources.LoadAssetAtPath <AudioClip>(path); if (null != audio) { log += path + "\t" + audio.length + "\n"; } } Debug.Log(log); }
public int Find2(ref string log) { if (string.IsNullOrEmpty(AtlasName)) { return(0); } var temp = AtlasName.ToLower(); var cs = EnumAssets.EnumComponentRecursiveInCurrentSelection <Particle2D>(); EditorUtility.DisplayProgressBar("FindAtlasReference", "Collecting Component", 0); int count = cs.Count(); int i = 0; int n = 0; { // foreach(var c in cs) var __enumerator3 = (cs).GetEnumerator(); while (__enumerator3.MoveNext()) { var c = __enumerator3.Current; { i++; EditorUtility.DisplayProgressBar(AtlasName, c.gameObject.name, i * 1.0f / count); var atlas = c.atlas; if (null == atlas) { continue; } var atlasName = atlas.name.ToLower(); if (atlasName.Contains(temp)) { n++; foreach (var str in c.sprites) { log += "(" + atlas.name + "/" + str + ") " + c.transform.FullPath() + "\n"; } } } } } return(n); //Debug.Log("Using [" + AtlasName + "] Total=" + n.ToString() + "------------------------------------------end"); }
private static void SceneCheckupAndChangeRenderQueueMethod() { int processed = 0; try { var cs = EnumAssets.EnumComponentRecursiveInCurrentSelection <Renderer>(); EditorUtility.DisplayProgressBar("Change Scene Render Queue", "Collecting Component", 0); int count = cs.Count(); var layer = LayerMask.NameToLayer("ShadowReceiver"); var q = 2000 - 2; // Geometry - 2 int idx = 0; { // foreach(var c in cs) var __enumerator2 = (cs).GetEnumerator(); while (__enumerator2.MoveNext()) { var c = __enumerator2.Current; { idx++; if (c.gameObject.layer != layer) { continue; } processed++; EditorUtility.DisplayProgressBar("Change Scene Render Queue", c.gameObject.name, idx * 1.0f / count); ProcessRenderQueue(c, q); } } } AssetDatabase.Refresh(); } catch (Exception e) { Debug.LogError(e.Message); } finally { EditorUtility.ClearProgressBar(); EditorUtility.DisplayDialog("Change Scene Render Queue", "processed=" + processed.ToString(), "OK"); } }
//关闭T4m插件 public static void T4MComponentDisablemethod() { { // foreach(var go in EnumAssets.EnumComponentRecursiveInCurrentSelection<T4MObjSC>()) var __enumerator1 = (EnumAssets.EnumComponentRecursiveInCurrentSelection <T4MObjSC>()).GetEnumerator(); while (__enumerator1.MoveNext()) { var go = __enumerator1.Current; { var g = go.gameObject; Debug.Log(g.name + "T4MComponentDisable"); T4MObjSC mObjSc = g.GetComponent <T4MObjSC>(); mObjSc.enabled = false; } } } AssetDatabase.Refresh(); }
public static IEnumerable <UnityEngine.Object> EnumAllObjectDependentAtPath(string path) { var objs = EnumAssets.EnumObjectAtPath(path); List <string> pathList = new List <string>(); foreach (var obj in objs) { var assetPath = AssetDatabase.GetAssetPath(obj.GetInstanceID()); pathList.Add(assetPath); } var paths = AssetDatabase.GetDependencies(pathList.ToArray()); foreach (var p in paths) { var res = AssetDatabase.LoadAssetAtPath(p, typeof(UnityEngine.Object)); if (null != res) { yield return(res); } } }
//优化资源 public static void ChangeNPCShader() { var shaderId = Shader.Find("Scorpion/CharacterThrough").GetInstanceID(); var shader = Shader.Find("Scorpion/Character"); var cs = EnumAssets.EnumComponentRecursiveInCurrentSelection <Renderer>(); int count = cs.Count(); int i = 0; { // foreach(var c in cs) var __enumerator2 = (cs).GetEnumerator(); while (__enumerator2.MoveNext()) { var c = __enumerator2.Current; { foreach (var m in c.sharedMaterials) { if (null != m) { if (m.shader.GetInstanceID() == shaderId) { m.shader = shader; } } } i++; EditorUtility.DisplayProgressBar("Change Shader From CharacterThrough To Character", c.gameObject.name, i * 1.0f / count); } } } EditorUtility.ClearProgressBar(); AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); }
//Animator如果不带Controller或是带Controller但是没有设置动作的 也直接去掉,不用再添加Animation public static bool RemoveUselessAnimation() { string str = ""; Debug.Log("Remove Animation----------------begin"); int i = 0; { // foreach(var c in EnumAssets.EnumComponentRecursiveInCurrentSelection<Animation>()) var __enumerator5 = (EnumAssets.EnumComponentRecursiveInCurrentSelection <Animation>()).GetEnumerator(); while (__enumerator5.MoveNext()) { var c = __enumerator5.Current; { var go = c.gameObject; if (c.GetClipCount() <= 0) { MonoBehaviour.DestroyImmediate(c, true); } str += "[" + go.transform.FullPath() + "]\n"; i++; } } } if (!string.IsNullOrEmpty(str)) { Debug.Log(str); } AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); Debug.Log("Remove Useless Animation-Total=[" + i.ToString() + "]---------------end"); return(true); }
private static void getPath(string path) { List <string> mpathList = new List <string>(); if (path != null) { string[] f1 = Directory.GetFiles(path, "*"); ; string[] d1; { var __array1 = f1; var __arrayLength1 = __array1.Length; for (int __i1 = 0; __i1 < __arrayLength1; ++__i1) { var f11 = (string)__array1[__i1]; { string[] s = f11.Split(new char[] { '\\' }); string sss = ""; for (int i = 4; i < s.Length; i++) { if (i != s.Length - 1) { sss += s[i]; sss += '/'; } else { sss += s[i]; } } if (!sss.Contains("meta") && sss.Contains("prefab")) { mpathList.Add(sss); } } } } d1 = Directory.GetDirectories(path); { var __array2 = d1; var __arrayLength2 = __array2.Length; for (int __i2 = 0; __i2 < __arrayLength2; ++__i2) { var d11 = (string)__array2[__i2]; { getPath(d11); } } } } { var __list5 = mpathList; var __listCount5 = __list5.Count; for (int __i5 = 0; __i5 < __listCount5; ++__i5) { var data = __list5[__i5]; { int k = 0; UnityEngine.Object[] objects = AssetDatabase.LoadAllAssetsAtPath(data); foreach (var VARIABLE in objects) { if (objects != null && VARIABLE != null) { EditorUtility.DisplayProgressBar("ShadowsCloseTools", VARIABLE.name, k * 1.0f / objects.Length); } if (objects != null && VARIABLE != null) { if (VARIABLE.GetType().ToString() == "UnityEngine.GameObject") { GameObject mpGameObject = VARIABLE as GameObject; foreach (var aa in EnumAssets.EnumGameObjectRecursive(mpGameObject)) { if (aa.GetComponent <Renderer>() != null) { var MymeshRenderer = aa.GetComponent <Renderer>(); MymeshRenderer.castShadows = false; MymeshRenderer.receiveShadows = false; } } } } k++; } } } } EditorUtility.ClearProgressBar(); AssetDatabase.Refresh(); }
public static void CloseShadowsInSelection() { CloseShadows(EnumAssets.EnumComponentRecursiveInCurrentSelection <Renderer>()); }
///把除了带Animation的 带SceneAnimationTrigger 是SceneAnimationTrigger的Target 的perfab 都设成static public static void DrawcallOptimizemethod() { // GameObject[] gameObjects = EnumAssets.EnumGameObjectRecursiveInCurrentSelection() as GameObject[]; List <GameObject> staticList = new List <GameObject>(); int k = 0; { // foreach(var go in EnumAssets.EnumGameObjectRecursiveInCurrentSelection()) var __enumerator4 = (EnumAssets.EnumGameObjectRecursiveInCurrentSelection()).GetEnumerator(); while (__enumerator4.MoveNext()) { var go = __enumerator4.Current; { EditorUtility.DisplayProgressBar("Draw Call Optimize", go.name, k * 1.0f / EnumAssets.EnumGameObjectRecursiveInCurrentSelection().Count()); bool flag = false; do { if (null != go.GetComponent <Animation>()) { break; } if (null != go.GetComponent <SceneAnimationTrigger>()) { break; } if (null != go.GetComponent <ParticleSystem>()) { break; } if (null != go.GetComponent <ModelTextureAnimation>()) { break; } flag = true; } while (false); go.gameObject.isStatic = flag; if (go.GetComponent <SceneAnimationTrigger>()) { SceneAnimationTrigger ada = go.GetComponent <SceneAnimationTrigger>(); foreach (var d in ada.KeyFrames) { staticList.Add(d.Target); } } k++; } } } EditorUtility.ClearProgressBar(); { var __list5 = staticList; var __listCount5 = __list5.Count; for (int __i5 = 0; __i5 < __listCount5; ++__i5) { var a = __list5[__i5]; { a.isStatic = false; } } } AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); }