public static void RegistStartupTabs()
        {
            List <ReflectionUtility.TypeAndAttributeData> tabTypes = new List <ReflectionUtility.TypeAndAttributeData>();

            Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
            for (int iAssembly = 0; iAssembly < assemblies.Length; iAssembly++)
            {
                ReflectionUtility.CollectionTypeWithAttribute(tabTypes
                                                              , assemblies[iAssembly]
                                                              , typeof(StartupTabAttribute)
                                                              , false);
            }

            for (int iTab = 0; iTab < tabTypes.Count; iTab++)
            {
                ReflectionUtility.TypeAndAttributeData iterTabData = tabTypes[iTab];
                try
                {
                    StartupTabAttribute iterAttribute = (StartupTabAttribute)iterTabData.Attribute;
                    if (iterAttribute.OnlyRuntime &&
                        Application.isEditor)
                    {
                        continue;
                    }
                    ITab iterTab = (ITab)iterTabData.Type.Assembly.CreateInstance(iterTabData.Type.FullName);
                    _ms_Instance.RegistGUI(iterAttribute.TabName
                                           , iterTab.DoGUI
                                           , iterAttribute.OnlyRuntime);
                }
                catch (Exception e)
                {
                    MDebug.LogWarning("DebugPanel"
                                      , $"加载DebugPanel.Tab({iterTabData.Type.FullName})失败\n{e.ToString()}");
                }
            }
        }