private void OnGUI()
        {
            GUI.enabled = !m_workingChange;

            GUILayout.BeginHorizontal();
            GUILayout.BeginVertical();
            m_scrollPos = GUILayout.BeginScrollView(m_scrollPos);
            for (int i = 0; i < m_ListMaterials.Count; i++)
            {
                m_ListMaterials[i] = EditorGUILayout.ObjectField(m_ListMaterials[i], typeof(Material), true) as Material;
            }
            GUILayout.EndScrollView();

            if (GUILayout.Button("Select All Scene Target Legacy Material"))
            {
                FindShader();
                m_ListMaterials.Clear();
                List <GameObject> sceneList = new List <GameObject>();
                foreach (GameObject go in Resources.FindObjectsOfTypeAll(typeof(GameObject)) as GameObject[])
                {
                    if (go.hideFlags == HideFlags.NotEditable || go.hideFlags == HideFlags.HideAndDontSave)
                    {
                        continue;
                    }

                    if (EditorUtility.IsPersistent(go.transform.root.gameObject))
                    {
                        continue;
                    }

                    MeshRenderer        meshRender     = go.GetComponent <MeshRenderer>();
                    SkinnedMeshRenderer skinMeshRender = go.GetComponent <SkinnedMeshRenderer>();

                    if (meshRender == null && skinMeshRender == null)
                    {
                        continue;
                    }

                    Material[] mats = meshRender == null ? skinMeshRender.sharedMaterials : meshRender.sharedMaterials;
                    foreach (Material mat in mats)
                    {
                        string   matPath      = AssetDatabase.GetAssetPath(mat);
                        Material diskMaterial = AssetDatabase.LoadAssetAtPath <Material>(matPath);
                        if (!m_ListMaterials.Contains(diskMaterial))
                        {
                            bool needProcess = CheckLegacyShader(diskMaterial);
                            if (!needProcess)
                            {
                                continue;
                            }
                            m_ListMaterials.Add(diskMaterial);
                        }
                    }
                }
            }

            if (GUILayout.Button("Upgrade To Standard Material"))
            {
                m_workIndex     = 0;
                m_workingChange = true;
                m_intervalTime  = intervalTime;
            }

            GUI.enabled = m_workingChange;
            if (GUILayout.Button("Stop Upgrade"))
            {
                m_workingChange = false;
                m_workIndex     = 0;
            }
            GUILayout.EndVertical();

            GUILayout.BeginVertical();
            if (curEditor != null)
            {
                curEditor.DrawPreview(new Rect(20, 20, 64, 64));
                curEditor.PropertiesGUI();
            }
            GUILayout.EndVertical();
            GUILayout.EndHorizontal();
        }