static void PersistSelectedGameObject()
 {
     if (PPEditorWindow.currentWindow != null)
     {
         PPEditorWindow.PersistSelectedGameObject();
         PPEditorWindow.currentWindow.Repaint();
     }
 }
Beispiel #2
0
 public void OnEnable()
 {
     EditorApplication.playmodeStateChanged += Application_PlaymodeStateChanged;
     if (currentWindow == null)
     {
         currentWindow = this;
     }
 }
 static void Init(bool manualFocus)
 {
      #if (UNITY_2_6 || UNITY_2_6_1 || UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4)
             PPEditorWindow.currentWindow = (PPEditorWindow)EditorWindow.GetWindow<PPEditorWindow>(false,"PM-Persist", false);
     #else
         EditorWindow inspectorWindow = getEditorWindowOfTypeStr("UnityEditor.InspectorWindow");
         if (inspectorWindow == null)
         {
             PPEditorWindow.currentWindow = (PPEditorWindow)EditorWindow.GetWindow<PPEditorWindow>("PM-Persist", false);
         }
         else
         {
             System.Type[] dockNextTo = new System.Type[1];
             dockNextTo[0] = inspectorWindow.GetType();
             PPEditorWindow.currentWindow = (PPEditorWindow)EditorWindow.GetWindow<PPEditorWindow>("PM-Persist", false, dockNextTo);
             if (manualFocus)
             {
                 inspectorWindow.Focus();
             }
         }
     #endif
     //window.minSize = new Vector2(300, 200);
 }
Beispiel #4
0
 static void Init(bool manualFocus)
 {
      #if (UNITY_2_6 || UNITY_2_6_1 || UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4)
     PPEditorWindow.currentWindow = (PPEditorWindow)EditorWindow.GetWindow <PPEditorWindow>(false, "PM-Persist", false);
     #else
     EditorWindow inspectorWindow = getEditorWindowOfTypeStr("UnityEditor.InspectorWindow");
     if (inspectorWindow == null)
     {
         PPEditorWindow.currentWindow = (PPEditorWindow)EditorWindow.GetWindow <PPEditorWindow>("PM-Persist", false);
     }
     else
     {
         System.Type[] dockNextTo = new System.Type[1];
         dockNextTo[0] = inspectorWindow.GetType();
         PPEditorWindow.currentWindow = (PPEditorWindow)EditorWindow.GetWindow <PPEditorWindow>("PM-Persist", false, dockNextTo);
         if (manualFocus)
         {
             inspectorWindow.Focus();
         }
     }
     #endif
     //window.minSize = new Vector2(300, 200);
 }
 public void OnEnable()
 {
     EditorApplication.playmodeStateChanged+= Application_PlaymodeStateChanged;
     if (currentWindow == null)
     {
         currentWindow = this;
     }
 }
 public void OnDestroy()
 {
     currentWindow = null;
 }
    public void OnGUI()
    {
        GUILayout.Label("PlayModePersist - Auto Persist", EditorStyles.boldLabel);
        EditorGUILayout.Space();
        autoPersistSearch = EditorGUILayout.TextField(new GUIContent("Filter"), autoPersistSearch, GUILayout.Width(300.0f));
        EditorGUILayout.Space();

        scrollPos = EditorGUILayout.BeginScrollView(scrollPos, false, false, GUILayout.Width(300), GUILayout.Height(this.position.height - 140));
        int listCount = 0;

        foreach (PPAutoPersistObject autoPersistObj in defaultTypes)
        {
            if (autoPersistSearch == "" || autoPersistObj.TypeName.ToLower().StartsWith(autoPersistSearch.ToLower()))
            {
                if (!isShowOnlyEnabled || autoPersistObj.IsDefaulted)
                {
                    GUILayout.BeginHorizontal(GUILayout.Width(250));
                    GUILayout.Label(autoPersistObj.TypeName, GUILayout.Width(200));

                    if (!autoPersistObj.IsDefaulted)
                    {
                        if (GUILayout.Button("Add"))
                        {
                            PPLocalStorageManager.AddDefault(autoPersistObj.GetFullClassName());
                            autoPersistObj.IsDefaulted = true;
                            if (EditorApplication.isPlaying || EditorApplication.isPaused)
                            {
                                if (PPEditorWindow.currentWindow != null)
                                {
                                    PPEditorWindow.SetPersistanceForAllExistingContextObjects(autoPersistObj.TypeName, true);
                                    PPEditorWindow.currentWindow.Repaint();
                                }
                            }
                        }
                    }
                    else
                    {
                        if (GUILayout.Button("Remove"))
                        {
                            PPLocalStorageManager.RemoveDefault(autoPersistObj.GetFullClassName());
                            autoPersistObj.IsDefaulted = false;
                            if (EditorApplication.isPlaying || EditorApplication.isPaused)
                            {
                                if (PPEditorWindow.currentWindow != null)
                                {
                                    PPEditorWindow.SetPersistanceForAllExistingContextObjects(autoPersistObj.TypeName, false);
                                    PPEditorWindow.currentWindow.Repaint();
                                }
                            }
                            //add logic to deselect all active object of this type if in PlayMode
                        }
                    }

                    GUILayout.EndHorizontal();
                    listCount++;
                }
            }
        }
        if (listCount == 0)
        {
            if (isShowOnlyEnabled && autoPersistSearch == "")
            {
                GUILayout.Label("No Components Are Auto Persisting");
            }
            else
            {
                GUILayout.Label("Please Broaden Your Search");
            }
        }
        EditorGUILayout.EndScrollView();
        EditorGUILayout.Space();
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Show Only Enabled");
        isShowOnlyEnabled = EditorGUILayout.Toggle(isShowOnlyEnabled, GUILayout.ExpandWidth(true));
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.Space();
        //  GUILayout.Label("Note:You will need to have selected a GameObject\nwhile in Playmode for components to auto persist");

        //Experimental Start

        /*
         * EditorGUILayout.BeginHorizontal();
         * if (GUILayout.Button("Add All"))
         * {
         *  foreach (PPAutoPersistObject autoPersistObj in defaultTypes)
         *  {
         *      PPLocalStorageManager.AddDefault(autoPersistObj.GetFullClassName());
         *      autoPersistObj.IsDefaulted = true;
         *      if (EditorApplication.isPlaying || EditorApplication.isPaused)
         *      {
         *          PPInspector.SetPersistanceForAllExistingContextObjects(autoPersistObj.TypeName, true);
         *      }
         *  }
         * }
         *
         * if (GUILayout.Button("Remove All"))
         * {
         *  foreach (PPAutoPersistObject autoPersistObj in defaultTypes)
         *  {
         *      PPLocalStorageManager.RemoveDefault(autoPersistObj.GetFullClassName());
         *      autoPersistObj.IsDefaulted = false;
         *      if (EditorApplication.isPlaying || EditorApplication.isPaused)
         *      {
         *          PPInspector.SetPersistanceForAllExistingContextObjects(autoPersistObj.TypeName, false);
         *      }
         *  }
         * }
         * EditorGUILayout.EndHorizontal();
         * EditorGUILayout.Space();
         * EditorGUILayout.Space();
         */
        //Experimental End
    }
 static void AutoInit()
 {
     EditorApplication.update -= AutoInit;
     PPEditorWindow.AutoInit();
 }
Beispiel #9
0
 public void OnDestroy()
 {
     currentWindow = null;
 }