@@ -48,6 +48,7 @@ static bool IsAssemblyLocked
4848 static Stopwatch compileSW = new Stopwatch ( ) ;
4949 //是否编译了
5050 static bool isNewCompile = false ;
51+ static bool isReloaded = false ; //完全模式下是否reload
5152 static List < string > listAssembly = new List < string > ( ) ;
5253
5354 [ InitializeOnLoadMethod ]
@@ -91,6 +92,7 @@ static void ManualReload()
9192 if ( isNewCompile && ManuallyReloadSetting . Instance . IsEnableManuallyReload )
9293 {
9394 ForceReloadDomain ( ) ;
95+ 9496 }
9597 }
9698 //强制刷新
@@ -105,10 +107,22 @@ static void MenuForceReloadDomain()
105107 static void EditorApplication_playModeStateChanged ( PlayModeStateChange state )
106108 {
107109 //如果没有开启 或者 是完全手动模式直接return
108- if ( ! ManuallyReloadSetting . Instance . IsEnableManuallyReload || ManuallyReloadSetting . Instance . IsFullyManuallyReload ) return ;
109- if ( state == PlayModeStateChange . EnteredEditMode )
110+ if ( ! ManuallyReloadSetting . Instance . IsEnableManuallyReload ) return ;
111+ // if (ManuallyReloadSetting.Instance.IsFullyManuallyReload) return;
112+ switch ( state )
110113 {
111- ForceReloadDomain ( ) ;
114+ case PlayModeStateChange . ExitingEditMode :
115+ if ( ! isReloaded )
116+ ForceReloadDomain ( ) ;
117+ break ;
118+ case PlayModeStateChange . EnteredPlayMode :
119+ break ;
120+ case PlayModeStateChange . ExitingPlayMode :
121+ isReloaded = false ;
122+ break ;
123+ case PlayModeStateChange . EnteredEditMode :
124+ break ;
125+ 112126 }
113127 }
114128
@@ -199,6 +213,7 @@ private static void OnAfterAssemblyReload()
199213 if ( ManuallyReloadSetting . Instance . IsEnableManuallyReload )
200214 LockRealodDomain ( ) ;
201215 isNewCompile = false ;
216+ isReloaded = true ;
202217 }
203218 #endregion
204219 }
@@ -209,8 +224,8 @@ public class ManuallyReloadSetting : ScriptableObject
209224 {
210225 [ Tooltip ( "是否启用手动Reload" ) ]
211226 public bool IsEnableManuallyReload = true ;
212- [ Tooltip ( "完全手动Reload" ) ]
213- public bool IsFullyManuallyReload = false ;
227+ // [Tooltip("完全手动Reload")]
228+ // public bool IsFullyManuallyReload = false;
214229 [ Tooltip ( "是否Editor代码也需手动Reload?当且仅当编辑的所有代码属于Editor才会有效" ) ]
215230 public bool IsEditorUseManuallyReload ;
216231
@@ -249,7 +264,7 @@ static class ManuallyReloadRegisterToSetting
249264 static GUIStyle iconStyle ;
250265 static SerializedObject so ;
251266 static SerializedProperty p_isEnableManuallyReload ;
252- static SerializedProperty p_isFullyManuallyReload ;
267+ // static SerializedProperty p_isFullyManuallyReload;
253268 static SerializedProperty p_isEditorUseManuallyReload ;
254269 static GUIContent guicontentEnable = new GUIContent ( "Enable Manually Reload" ) ;
255270 static GUIContent guicontentFullyManually = new GUIContent ( "Enable Fully Manually Reload" ) ;
@@ -276,7 +291,7 @@ public static SettingsProvider CreateMyManuallyReloadProvider()
276291 {
277292 so = new SerializedObject ( ManuallyReloadSetting . Instance ) ;
278293 p_isEnableManuallyReload = so . FindProperty ( nameof ( ManuallyReloadSetting . Instance . IsEnableManuallyReload ) ) ;
279- p_isFullyManuallyReload = so . FindProperty ( nameof ( ManuallyReloadSetting . Instance . IsFullyManuallyReload ) ) ;
294+ // p_isFullyManuallyReload = so.FindProperty(nameof(ManuallyReloadSetting.Instance.IsFullyManuallyReload));
280295 p_isEditorUseManuallyReload = so . FindProperty ( nameof ( ManuallyReloadSetting . Instance . IsEditorUseManuallyReload ) ) ;
281296 }
282297 var settings = ManuallyReloadSetting . Instance ;
@@ -303,16 +318,16 @@ public static SettingsProvider CreateMyManuallyReloadProvider()
303318 }
304319 }
305320 }
306- using ( var check = new EditorGUI . ChangeCheckScope ( ) )
307- {
308- using ( new EditorGUI . DisabledScope ( ! p_isEnableManuallyReload . boolValue ) )
309- EditorGUILayout . PropertyField ( p_isFullyManuallyReload , guicontentFullyManually ) ;
310- if ( check . changed )
311- {
312- so . ApplyModifiedPropertiesWithoutUndo ( ) ;
313- settings . Save ( ) ;
314- }
315- }
321+ // using (var check = new EditorGUI.ChangeCheckScope())
322+ // {
323+ // using (new EditorGUI.DisabledScope(!p_isEnableManuallyReload.boolValue))
324+ // EditorGUILayout.PropertyField(p_isFullyManuallyReload, guicontentFullyManually);
325+ // if (check.changed)
326+ // {
327+ // so.ApplyModifiedPropertiesWithoutUndo();
328+ // settings.Save();
329+ // }
330+ // }
316331 using ( var check = new EditorGUI . ChangeCheckScope ( ) )
317332 {
318333 using ( new EditorGUI . DisabledScope ( ! p_isEnableManuallyReload . boolValue ) )
0 commit comments