- Home /
 
               Question by 
               Xavier78 · Apr 22, 2017 at 11:53 PM · 
                editormenuitempersistent  
              
 
              MenuItem toggle getting reset on play.
I have a menu item that is a toggle, it works fine, but it seems that on play the editor refreshes, and doesn't set the menuitem check mark, even though the menuitem value is still true, which is EditorApplication.delayCall not working? it seems like all delages get cleared on play, becuase if you use EditorApplication.Update and hit it while in play mode, it still is called in editor mode, but if you hit playmode again it stops.
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEditor;
 
 public class PercistanceMenuItem
 {
 
     private const string MENU_PATH = "Percistence/'test mode' -> 'Editor' percistent";
 
     private static bool enabled_ = false;
 
      static  PercistanceMenuItem() {
          PercistanceMenuItem.enabled_ = EditorPrefs.GetBool( PercistanceMenuItem.MENU_PATH , false);
  
          /// Delaying until first editor tick so that the menu
          /// will be populated before setting check state, and
          /// re-apply correct action
          EditorApplication.delayCall += () => {
              PerformAction( PercistanceMenuItem.enabled_);
          };
      }
  
      [MenuItem( PercistanceMenuItem.MENU_PATH, false)]
      private static void ToggleAction() {
         Debug.Log("before : " + enabled_);
          /// Toggling action
          Menu.SetChecked( PercistanceMenuItem.MENU_PATH , enabled_);
          PerformAction( ! PercistanceMenuItem.enabled_);
 
         Debug.Log("after : " + enabled_);
 
      }
  
      public static void PerformAction(bool enabled) {
  
          /// Set checkmark on menu item
          Menu.SetChecked( PercistanceMenuItem.MENU_PATH , enabled);
          /// Saving editor state
          EditorPrefs.SetBool( PercistanceMenuItem.MENU_PATH , enabled);
  
           PercistanceMenuItem.enabled_ = enabled;
  
          /// Perform your logic here...
      }
 }
 
 
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Repaint EditorSettings inspector from custom menu item 1 Answer
How do I add a MenuItem to Hierarchy's Create Menu? 2 Answers
Editor Scripting Question 1 Answer
Can I create MenuItem from code? 3 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                