Beispiel #1
0
        private void DrawButtons(Rect rect, Type type)
        {
            var closeButtonRect = rect;

            closeButtonRect.x    = closeButtonRect.width - 17;
            closeButtonRect.y   += 4;
            closeButtonRect.size = new Vector2(18, 18);
            if (GUI.Button(closeButtonRect, new GUIContent("X", "Close System"), EditorStyles.miniButton))
            {
                window.SetSelected(null);
            }

            var profilerButtonRect = rect;

            profilerButtonRect.x    = profilerButtonRect.width - 36;
            profilerButtonRect.y   += 4;
            profilerButtonRect.size = new Vector2(18, 18);
            if (GUI.Button(profilerButtonRect, new GUIContent("P", "Open Profiler"), EditorStyles.miniButton))
            {
                awaitingProfiler = true;
            }

            var editButton = rect;

            editButton.x    = editButton.width - 55;
            editButton.y   += 4;
            editButton.size = new Vector2(18, 18);
            if (GUI.Button(editButton, new GUIContent("E", "Edit File"), EditorStyles.miniButton))
            {
                var search = AssetDatabase.FindAssets("t:script " + type.Name);
                if (search.Length > 0)
                {
                    var obj = AssetDatabase.LoadAssetAtPath <UnityEngine.Object> (AssetDatabase.GUIDToAssetPath(search[0]));
                    if (obj != null)
                    {
                        AssetDatabase.OpenAsset(obj, -1);
                    }
                    else
                    {
                        Debug.LogWarning("Can't load asset");
                    }
                }
            }

            if (window.selectedWorld != null)
            {
                var ecsDebuggerButtonRect = rect;
                ecsDebuggerButtonRect.x    = ecsDebuggerButtonRect.width - 74;
                ecsDebuggerButtonRect.y   += 4;
                ecsDebuggerButtonRect.size = new Vector2(18, 18);
                if (GUI.Button(ecsDebuggerButtonRect, new GUIContent("D", "Open Entity Debugger"), EditorStyles.miniButton))
                {
                    var entityDebugger = EditorWindow.GetWindow <EntityDebugger> (false, "Entity Debugger", true);
                    entityDebugger.Show();
                    entityDebugger.SetSystemSelection(window.selectedWorld.GetExistingManager(type.GetType()), window.selectedWorld, true, true);
                }
            }
        }
 protected override void SelectionChanged(IList <int> selectedIds)
 {
     if (selectedIds?.Count > 0)
     {
         if (typeIds.ContainsKey(selectedIds[0]))
         {
             var type = typeIds[selectedIds[0]];
             window.SetSelected(type);
             prevSelected = selectedIds;
             PlayerPrefs.SetString("selectedsystem", type.AssemblyQualifiedName);
         }
         else if (prevSelected != null)
         {
             PlayerPrefs.SetString("selectedsystem", "");
             this.SetSelection(prevSelected);
         }
         else
         {
             PlayerPrefs.SetString("selectedsystem", "");
             this.SetSelection(new int[0]);
         }
     }
 }