Ejemplo n.º 1
0
 public InspectSpell(InspectType type)
 {
     Type = type;
     Texture2D icons = TextureManager.GetTexture(ContentPaths.GUI.icons);
     Recharges = false;
     switch (type)
     {
         case InspectType.InspectBlock:
         {
             Image = new ImageFrame(icons, 32, 7, 1);
             ManaCost = 0;
             Mode = Spell.SpellMode.SelectFilledVoxels;
             Name = "Inspect Blocks";
             Description = "Mouse over a block to get info about it";
             Hint = "Mouse over a block for info";
             RechargeTimer = new Timer(0.1f, true);
             break;
         }
         case InspectType.InspectEntity:
         {
             Image = new ImageFrame(icons, 32, 7, 1);
             ManaCost = 0;
             Mode = Spell.SpellMode.Continuous;
             Name = "Inspect Objects";
             Description = "Select an entity to get info about it";
             Hint = "Mouse over entities for info";
             RechargeTimer = new Timer(0.1f, true);
             break;
         }
     }
 }
Ejemplo n.º 2
0
 public static void Test_InspectType_01()
 {
     _tr.WriteLine("Test_InspectType_01");
     //InspectType it = new InspectType("toto tata");
     //InspectType it = new InspectType(new test_01 { name = "zozo", number = 1234 });
     //InspectType it = new InspectType(new string[] { "tata", "toto", "zaza", "zozo" });
     InspectType it = new InspectType(new test_01[] {
         new test_01 { name = "tata", number = 1001 },
         new test_01 { name = "toto", number = 1002 },
         new test_01 { name = "zaza", number = 1003 },
         new test_01 { name = "zozo", number = 1004 } });
     foreach (InspectValue v in it)
     {
         _tr.WriteLine("name \"{0}\", valueType {1}, type {2}, value \"{3}\"", v.name, v.valueType, v.type, v.value);
     }
 }
Ejemplo n.º 3
0
 void SetTypeSettings()
 {
     inspectType = InspectType.RANDOM;
 }
    void OnGUI()
    {
        if (GUILayout.Button("Refresh")) CheckResources();
        GUILayout.BeginHorizontal();
        GUILayout.Label("Materials "+ActiveMaterials.Count);
        GUILayout.Label("Textures "+ActiveTextures.Count+" - "+FormatSizeString(TotalTextureMemory));
        GUILayout.Label("Meshes "+ActiveMeshDetails.Count+" - "+TotalMeshVertices+" verts");
        GUILayout.EndHorizontal();
        ActiveInspectType=(InspectType)GUILayout.Toolbar((int)ActiveInspectType,inspectToolbarStrings);

        ctrlPressed=Event.current.control || Event.current.command;

        switch (ActiveInspectType)
        {
            case InspectType.Textures:
                ListTextures();
                break;
            case InspectType.Materials:
                ListMaterials();
                break;
            case InspectType.Meshes:
                ListMeshes();
                break;

        }
    }
    void OnGUI()
    {
        if ( GUILayout.Button( "Refresh Dependencies" ) )
            CheckResources();

        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Box(
            "Summary\n" +
            "Materials " + ActiveMaterials.Count + "\n" +
            "Textures " + ActiveTextures.Count + " - " + EditorUtility.FormatBytes(TotalTextureMemory) + "\n" +
            "Meshes " + ActiveMeshDetails.Count + "\n" +
            "Shaders " + ActiveShaderDetails.Count + "\n" +
            "Sounds " + ActiveSoundDetails.Count + "\n" +
            "Scripts " + ActiveScriptDetails.Count );
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        Texture2D iconTexture = AssetPreview.GetMiniTypeThumbnail( typeof( Texture2D ) );
        Texture2D iconMaterial = AssetPreview.GetMiniTypeThumbnail( typeof( Material ) );
        Texture2D iconMesh = AssetPreview.GetMiniTypeThumbnail( typeof( Mesh ) );
        Texture2D iconShader = AssetPreview.GetMiniTypeThumbnail( typeof( Shader ) );
        Texture2D iconSound = AssetPreview.GetMiniTypeThumbnail( typeof( AudioClip ) );
        Texture2D iconScript = AssetPreview.GetMiniTypeThumbnail( typeof( MonoScript ) );

        GUIContent [] guiObjs =
        {
            new GUIContent( iconTexture, "Active Textures" ),
            new GUIContent( iconMaterial, "Active Materials" ),
            new GUIContent( iconMesh, "Active Meshes" ),
            new GUIContent( iconShader, "Active Shaders" ),
            new GUIContent( iconSound, "Active Sounds" ),
            new GUIContent( iconScript, "Active Scripts" ),
        };

        GUILayoutOption [] options =
        {
            GUILayout.Width( 300 ),
            GUILayout.Height( 50 ),
        };

        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        ActiveInspectType=(InspectType)GUILayout.Toolbar((int)ActiveInspectType,guiObjs,options);
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        Util.ctrlPressed = Event.current.control || Event.current.command;

        switch (ActiveInspectType)
        {
        case InspectType.Textures:
            ListTextures();
            break;
        case InspectType.Materials:
            ListMaterials();
            break;
        case InspectType.Meshes:
            ListMeshes();
            break;
        case InspectType.Shaders:
            ListShaders();
            break;
        case InspectType.Sounds:
            ListSounds();
            break;
        case InspectType.Scripts:
            ListScripts();
            break;
        }
    }
    void OnGUI()
    {
        if (GUILayout.Button("Refresh")) CheckResources();

        GUILayout.Label("Total materials "+ActiveMaterials.Count);
        GUILayout.Label("Total textures "+ActiveTextures.Count+" - "+FormatSizeString(TotalTextureMemory));
        GUILayout.Label("Total meshes "+ActiveMeshDetails.Count+" - "+TotalMeshVertices+" verts");

        ActiveInspectType=(InspectType)GUILayout.Toolbar((int)ActiveInspectType,inspectToolbarStrings);

        switch (ActiveInspectType)
        {
            case InspectType.Textures:
                ListTextures();
                break;
            case InspectType.Materials:
                ListMaterials();
                break;
            case InspectType.Meshes:
                ListMeshes();
                break;

        }
    }
Ejemplo n.º 7
0
        void OnGUI()
        {
            defColor = GUI.color;
            IncludeDisabledObjects  = GUILayout.Toggle(IncludeDisabledObjects, "Include disabled objects", GUILayout.Width(300));
            IncludeSpriteAnimations = GUILayout.Toggle(IncludeSpriteAnimations, "Look in sprite animations", GUILayout.Width(300));
            GUI.color = new Color(0.8f, 0.8f, 1.0f, 1.0f);
            IncludeScriptReferences = GUILayout.Toggle(IncludeScriptReferences, "Look in behavior fields", GUILayout.Width(300));
            GUI.color          = new Color(1.0f, 0.95f, 0.8f, 1.0f);
            IncludeGuiElements = GUILayout.Toggle(IncludeGuiElements, "Look in GUI elements", GUILayout.Width(300));
            GUI.color          = defColor;
            GUILayout.BeginArea(new Rect(position.width - 85, 5, 100, 65));
            if (GUILayout.Button("Calculate", GUILayout.Width(80), GUILayout.Height(40)))
            {
                CheckResources();
            }
            if (GUILayout.Button("CleanUp", GUILayout.Width(80), GUILayout.Height(20)))
            {
                Resources.UnloadUnusedAssets();
            }
            GUILayout.EndArea();
            RemoveDestroyedResources();

            GUILayout.Space(30);
            if (thingsMissing == true)
            {
                EditorGUI.HelpBox(new Rect(8, 75, 300, 25), "Some GameObjects are missing graphical elements.", MessageType.Error);
            }
            GUILayout.BeginHorizontal();
            GUILayout.Label("Textures " + ActiveTextures.Count + " - " + FormatSizeString(TotalTextureMemory));
            GUILayout.Label("Materials " + ActiveMaterials.Count);
            GUILayout.Label("Meshes " + ActiveMeshDetails.Count + " - " + TotalMeshVertices + " verts");
            GUILayout.EndHorizontal();
            if (thingsMissing == true)
            {
                ActiveInspectType = (InspectType)GUILayout.Toolbar((int)ActiveInspectType, inspectToolbarStrings2);
            }
            else
            {
                ActiveInspectType = (InspectType)GUILayout.Toolbar((int)ActiveInspectType, inspectToolbarStrings);
            }

            ctrlPressed = Event.current.control || Event.current.command;

            switch (ActiveInspectType)
            {
            case InspectType.Textures:
                ListTextures();
                break;

            case InspectType.Materials:
                ListMaterials();
                break;

            case InspectType.Meshes:
                ListMeshes();
                break;

            case InspectType.Missing:
                ListMissing();
                break;
            }
        }
    void OnGUI()
    {
        #region refresh resources
        GUILayout.BeginHorizontal();
        allScene = GUILayout.Toggle(allScene, "All Scene");
        if (GUILayout.Button("Refresh")) {
          if (allScene) {
        CheckAllSceneResources();
          } else {
        CheckCurrentSceneResources();
          }
        }
        GUILayout.EndHorizontal();
        #endregion

        #region show resources

        ctrlPressed = Event.current.control || Event.current.command;

        GUILayout.BeginHorizontal();
        GUILayout.Label("Materials " + ActiveMaterials.Count);
        GUILayout.Label("Textures " + ActiveTextures.Count + " - " + FormatSizeString(TotalTextureMemory));
        GUILayout.Label("Meshes " + ActiveMeshDetails.Count + " - " + TotalMeshVertices + " verts");
        GUILayout.EndHorizontal();

        ActiveInspectType = (InspectType)GUILayout.Toolbar((int)ActiveInspectType, inspectToolbarStrings);

        switch (ActiveInspectType) {
          case InspectType.Textures:
        if (allScene) {
          ListAllSceneTextures();
        } else {
          ListCurrentSceneTextures();
        }
        break;
          case InspectType.Materials:
        if (allScene) {
          ListAllSceneMaterials();
        } else {
          ListCurrentSceneMaterials();
        }
        break;
          case InspectType.Meshes:
        if (allScene) {
          ListAllSceneMeshes();
        } else {
          ListCurrentSceneMeshes();
        }
        break;
        }
        #endregion
    }
Ejemplo n.º 9
0
 public NodeInspectAttribute(InspectType type = InspectType.None)
 {
     Type = type;
 }
Ejemplo n.º 10
0
    // 显示并处理输入

    void OnGUI()
    {
        //defColor = GUI.color;


        //替换图标用的代码

        /*
         * byte[] fileData;
         *
         * Texture2D iconHandDraw1 = null;
         * fileData = File.ReadAllBytes("Assets/icons/plus.png");
         * iconHandDraw1 = new Texture2D(2,2);
         * iconHandDraw1.LoadImage(fileData);
         *
         * Texture2D iconHandDraw2 = null;
         * fileData = File.ReadAllBytes("Assets/icons/sort1.png");
         * iconHandDraw2 = new Texture2D(2,2);
         * iconHandDraw2.LoadImage(fileData);
         *
         * Texture2D iconHandDraw3 = null;
         * fileData = File.ReadAllBytes("Assets/icons/sort2.png");
         * iconHandDraw3 = new Texture2D(2,2);
         * iconHandDraw3.LoadImage(fileData);
         *
         * Texture2D iconHandDraw4 = null;
         * fileData = File.ReadAllBytes("Assets/icons/sort3.png");
         * iconHandDraw4 = new Texture2D(2,2);
         * iconHandDraw4.LoadImage(fileData);
         *
         * Texture2D iconHandDraw5 = null;
         * fileData = File.ReadAllBytes("Assets/icons/refresh.png");
         * iconHandDraw5 = new Texture2D(2,2);
         * iconHandDraw5.LoadImage(fileData);
         */

        // 指定图标贴图

        Texture2D iconTexture     = AssetPreview.GetMiniTypeThumbnail(typeof(Texture2D));
        Texture2D iconMaterial    = AssetPreview.GetMiniTypeThumbnail(typeof(Material));
        Texture2D iconMesh        = AssetPreview.GetMiniTypeThumbnail(typeof(Mesh));
        Texture2D iconShader      = AssetPreview.GetMiniTypeThumbnail(typeof(Shader));
        Texture2D iconSound       = AssetPreview.GetMiniTypeThumbnail(typeof(AudioClip));
        Texture2D iconScript      = AssetPreview.GetMiniTypeThumbnail(typeof(MonoScript));
        Texture2D iconSortAlpha   = EditorGUIUtility.FindTexture("AlphabeticalSorting");
        Texture2D iconSortDefault = EditorGUIUtility.FindTexture("DefaultSorting");
        Texture2D iconSortDepend  = EditorGUIUtility.FindTexture("CustomSorting");
        Texture2D iconFolder      = EditorGUIUtility.FindTexture("Folder Icon");
        Texture2D iconRefresh     = EditorGUIUtility.FindTexture("vcs_Refresh");
        Texture2D iconPlus        = EditorGUIUtility.FindTexture("Toolbar Plus");

        // 显示根据资源类型进行筛选的按钮

        GUILayout.Space(15);

        GUIContent[] guiObjs =
        {
            new GUIContent(iconTexture,  "Textures"),
            new GUIContent(iconMaterial, "Materials"),
            new GUIContent(iconMesh,     "Meshes"),
            new GUIContent(iconShader,   "Shaders"),
            new GUIContent(iconSound,    "Sounds"),
            new GUIContent(iconScript,   "Scripts"),
        };

        GUILayoutOption[] options =
        {
            GUILayout.Width(300),
            GUILayout.Height(50),
        };

        //替换图标用的代码

        /*
         * GUIContent [] sortObjs = {
         *  new GUIContent(iconHandDraw4, "Sort by size"),
         *  new GUIContent(iconHandDraw3, "Sort Alphabetically"),
         *  new GUIContent(iconHandDraw2, "Sort by Dependency"),
         * };
         */

        // 显示根据条件进行排序的按钮

        GUIContent[] sortObjs =
        {
            new GUIContent(iconSortAlpha,   "Sort Alphabetically"),
            new GUIContent(iconSortDefault, "Sort by size"),
            new GUIContent(iconSortDepend,  "Sort by Dependency"),
        };

        GUILayoutOption[] sortOptions =
        {
            GUILayout.Width(90),
            GUILayout.Height(30),
        };

        GUILayout.BeginHorizontal();
        GUILayout.Space(19);

        ActiveInspectType = (InspectType)GUILayout.Toolbar((int)ActiveInspectType, guiObjs, options);

        // 显示各种资源的数量

        GUILayout.Box((
                          "Summary\n" +
                          "Materials: " + AllMaterials.Count + "\n" +
                          "Textures: " + AllTextures.Count + " - " + EditorUtility.FormatBytes(TotalTextureMemory)) + "\n" +
                      "Meshes " + AllMeshes.Count + "\n" +
                      "Shaders: " + AllShaders.Count + "\n" +
                      "Sounds: " + AllSounds.Count + "\n" +
                      "Scripts: " + AllScripts.Count + "\n",
                      GUILayout.Width(150), GUILayout.Height(100));

        GUILayout.EndHorizontal();

        GUILayout.Space(10);

        GUILayout.BeginHorizontal();
        GUILayout.Space(20);

        GUILayout.Label(iconFolder, GUILayout.Width(30), GUILayout.Height(30));

        // 显示添加需检查的文件夹的输入框和确认添加的按钮,并处理输入

        inputPath = EditorGUILayout.TextField(inputPath, GUILayout.Width(350), GUILayout.Height(30));

        if (GUILayout.Button(new GUIContent(iconPlus, "Add to list"), GUILayout.Width(30), GUILayout.Height(30)))
        {
            int check = 0;
            if (searchOption == SearchOption.TopDirectoryOnly)
            {
                // 和原列表中的元素进行一一比较,避免重复添加
                foreach (string s in inputPathList)
                {
                    if (s.Equals(inputPath))
                    {
                        check = 1;
                        break;
                    }
                }
                // 若待添加的文件夹不在原列表中,则确认添加
                if (check == 0)
                {
                    checkResources();
                    inputPathList.Add(inputPath);
                    CurrentPath++;
                }
            }
        }

        // 显示清空检查列表的按钮,并处理输入

        if (GUILayout.Button(new GUIContent(iconRefresh, "Clear list"), GUILayout.Width(30), GUILayout.Height(30)))
        {
            clearResources();
            searchOption = SearchOption.TopDirectoryOnly;
        }

        GUILayout.EndHorizontal();

        GUILayout.Space(10);

        GUILayout.BeginHorizontal();
        GUILayout.Space(20);
        ActiveSortType = (SortType)GUILayout.Toolbar((int)ActiveSortType, sortObjs, sortOptions);

        GUILayout.Space(258);

        // 显示手动刷新资源列表的按钮,并处理输入

        // 注:这是一个单向操作,重复点击也不能使searchOptions回到1
        // TODO: 需要在显示上做一些修改

        if (GUILayout.Button("Check all assets", GUILayout.Width(100), GUILayout.Height(30)))
        {
            if (searchOption != SearchOption.AllDirectories)
            {
                searchOption = SearchOption.AllDirectories;
                checkResources();
            }
        }
        GUILayout.EndHorizontal();


        EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);

        // 根据选择的资源类型显示对应种类的资源列表

        switch (ActiveInspectType)
        {
        case InspectType.Textures:
            ListTextures();
            break;

        case InspectType.Materials:
            ListMaterials();
            break;

        case InspectType.Meshes:
            ListMeshes();
            break;

        case InspectType.Shaders:
            ListShaders();
            break;

        case InspectType.Sounds:
            ListSounds();
            break;

        case InspectType.Scripts:
            ListScripts();
            break;
        }

        // 根据选择的条件对资源列表进行排序
        // TODO: 增加复合条件选项

        switch (ActiveSortType)
        {
        case SortType.AlphaSort:
            AllTextures.Sort(delegate(TextureDetails details1, TextureDetails details2) { return(string.Compare(details1.name, details2.name)); });
            AllMaterials.Sort(delegate(MaterialDetails details1, MaterialDetails details2) { return(string.Compare(details1.name, details2.name)); });
            AllMeshes.Sort(delegate(MeshDetails details1, MeshDetails details2) { return(string.Compare(details1.name, details2.name)); });
            AllShaders.Sort(delegate(ShaderDetails details1, ShaderDetails details2) { return(string.Compare(details1.name, details2.name)); });
            AllSounds.Sort(delegate(SoundDetails details1, SoundDetails details2) { return(string.Compare(details1.name, details2.name)); });
            AllScripts.Sort(delegate(ScriptDetails details1, ScriptDetails details2) { return(string.Compare(details1.name, details2.name)); });
            break;

        case SortType.SizeSort:
            AllTextures.Sort(delegate(TextureDetails details1, TextureDetails details2) { return(details2.memSizeBytes - details1.memSizeBytes); });
            AllMeshes.Sort(delegate(MeshDetails details1, MeshDetails details2) { return(details2.vertexCount - details1.vertexCount); });
            break;

        case SortType.DependencySort:
            AllTextures.Sort(delegate(TextureDetails details1, TextureDetails details2) { return(details2.FoundInMaterials.Count - details1.FoundInMaterials.Count); });
            AllMaterials.Sort(delegate(MaterialDetails details1, MaterialDetails details2) { return(details2.FoundInGameObjects.Count - details1.FoundInGameObjects.Count); });
            AllMeshes.Sort(delegate(MeshDetails details1, MeshDetails details2) { return(details2.FoundInGameObjects.Count - details1.FoundInGameObjects.Count); });
            AllShaders.Sort(delegate(ShaderDetails details1, ShaderDetails details2) { return(details2.FoundInMaterials.Count - details1.FoundInMaterials.Count); });
            AllSounds.Sort(delegate(SoundDetails details1, SoundDetails details2) { return(details2.FoundInGameObjects.Count - details1.FoundInGameObjects.Count); });
            AllScripts.Sort(delegate(ScriptDetails details1, ScriptDetails details2) { return(details2.FoundInGameObjects.Count - details1.FoundInGameObjects.Count); });
            break;
        }
    }
Ejemplo n.º 11
0
    void OnGUI()
    {
        #region refresh resources
        GUILayout.BeginHorizontal();
        allScene = GUILayout.Toggle(allScene, "All Scene");
        if (GUILayout.Button("Refresh"))
        {
            if (allScene)
            {
                CheckAllSceneResources();
            }
            else
            {
                CheckCurrentSceneResources();
            }
        }
        GUILayout.EndHorizontal();
        #endregion

        #region show resources

        ctrlPressed = Event.current.control || Event.current.command;

        GUILayout.BeginHorizontal();
        GUILayout.Label("Materials " + ActiveMaterials.Count);
        GUILayout.Label("Textures " + ActiveTextures.Count + " - " + FormatSizeString(TotalTextureMemory));
        GUILayout.Label("Meshes " + ActiveMeshDetails.Count + " - " + TotalMeshVertices + " verts");
        GUILayout.EndHorizontal();

        ActiveInspectType = (InspectType)GUILayout.Toolbar((int)ActiveInspectType, inspectToolbarStrings);

        switch (ActiveInspectType)
        {
        case InspectType.Textures:
            if (allScene)
            {
                ListAllSceneTextures();
            }
            else
            {
                ListCurrentSceneTextures();
            }
            break;

        case InspectType.Materials:
            if (allScene)
            {
                ListAllSceneMaterials();
            }
            else
            {
                ListCurrentSceneMaterials();
            }
            break;

        case InspectType.Meshes:
            if (allScene)
            {
                ListAllSceneMeshes();
            }
            else
            {
                ListCurrentSceneMeshes();
            }
            break;
        }
        #endregion
    }
Ejemplo n.º 12
0
    void OnGUI()
    {
        if (GUILayout.Button("Refresh Dependencies"))
        {
            CheckResources();
        }

        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Box(
            "Summary\n" +
            "Materials " + ActiveMaterials.Count + "\n" +
            "Textures " + ActiveTextures.Count + " - " + EditorUtility.FormatBytes(TotalTextureMemory) + "\n" +
            "Meshes " + ActiveMeshDetails.Count + "\n" +
            "Shaders " + ActiveShaderDetails.Count + "\n" +
            "Sounds " + ActiveSoundDetails.Count + "\n" +
            "Scripts " + ActiveScriptDetails.Count);
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        Texture2D iconTexture  = AssetPreview.GetMiniTypeThumbnail(typeof(Texture2D));
        Texture2D iconMaterial = AssetPreview.GetMiniTypeThumbnail(typeof(Material));
        Texture2D iconMesh     = AssetPreview.GetMiniTypeThumbnail(typeof(Mesh));
        Texture2D iconShader   = AssetPreview.GetMiniTypeThumbnail(typeof(Shader));
        Texture2D iconSound    = AssetPreview.GetMiniTypeThumbnail(typeof(AudioClip));
        Texture2D iconScript   = AssetPreview.GetMiniTypeThumbnail(typeof(MonoScript));

        GUIContent [] guiObjs =
        {
            new GUIContent(iconTexture,  "Active Textures"),
            new GUIContent(iconMaterial, "Active Materials"),
            new GUIContent(iconMesh,     "Active Meshes"),
            new GUIContent(iconShader,   "Active Shaders"),
            new GUIContent(iconSound,    "Active Sounds"),
            new GUIContent(iconScript,   "Active Scripts"),
        };

        GUILayoutOption [] options =
        {
            GUILayout.Width(300),
            GUILayout.Height(50),
        };

        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        ActiveInspectType = (InspectType)GUILayout.Toolbar((int)ActiveInspectType, guiObjs, options);
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        Util.ctrlPressed = Event.current.control || Event.current.command;

        switch (ActiveInspectType)
        {
        case InspectType.Textures:
            ListTextures();
            break;

        case InspectType.Materials:
            ListMaterials();
            break;

        case InspectType.Meshes:
            ListMeshes();
            break;

        case InspectType.Shaders:
            ListShaders();
            break;

        case InspectType.Sounds:
            ListSounds();
            break;

        case InspectType.Scripts:
            ListScripts();
            break;
        }
    }
Ejemplo n.º 13
0
 public NodePort(string fieldName, InspectType inspectType)
 {
     FieldName   = fieldName;
     InspectType = inspectType;
 }