Example #1
0
    //递归枚举通过这个目录读出来的某个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);
    }
Example #3
0
    public static void OpenDialog()
    {
        var    cs         = EnumAssets.EnumComponentRecursiveInCurrentSelection <UISprite>();
        string resultFile = Application.dataPath + "/" + "Result.txt";

        FindImpl(cs, resultFile);
    }
Example #4
0
    //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);
    }
Example #5
0
    //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);
    }
Example #6
0
    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;
    }
Example #7
0
    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);
    }
Example #8
0
    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");
    }
Example #9
0
        public static void DeleteSpriteRenderer()
        {
            const string assetPath = "Assets/Res/UI";

            DeleteSpriteRenderer(
                EnumAssets.EnumAllComponentDependenciesRecursive <SpriteRenderer>(
                    EnumAssets.EnumAssetAtPath <UnityEngine.Object>(assetPath)));
        }
Example #10
0
    //递归枚举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);
                            }
                        }
                    }
                }
            }
        }
    }
Example #11
0
    private static bool RemoveSameMeshColliderInIEnumer(string Path)
    {
        if (Path == null)
        {
            return(false);
        }

        RemoveSameMeshCollider(EnumAssets.EunmAllGameObjectRecursiveAtPath(Path));
        return(true);
    }
Example #12
0
    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);
    }
Example #13
0
    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);
    }
Example #14
0
    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");
    }
Example #15
0
        //优化资源
        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");
        }
Example #17
0
    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();
        }
    }
Example #18
0
    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);
    }
Example #19
0
        //优化资源
        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();
        }
Example #20
0
    //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);
    }
Example #21
0
    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);
    }
Example #22
0
    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");
    }
Example #23
0
        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");
            }
        }
Example #24
0
        //关闭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();
        }
Example #25
0
    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);
            }
        }
    }
Example #26
0
    //优化资源
    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();
    }
Example #27
0
    //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);
    }
Example #28
0
    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();
    }
Example #29
0
 public static void CloseShadowsInSelection()
 {
     CloseShadows(EnumAssets.EnumComponentRecursiveInCurrentSelection <Renderer>());
 }
Example #30
0
        ///把除了带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();
        }