Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5174ecf

Browse files
更新到1.0.6
1 parent 9492f4b commit 5174ecf

File tree

3 files changed

+35
-32
lines changed

3 files changed

+35
-32
lines changed

‎.github/README.md‎

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,11 @@ unity 提供了两个API `EditorApplication.LockReloadAssemblies();`和` EditorA
4848
## 使用方法
4949

5050
1. Unity中`Edit->ProjectSetting->Manually Reload Domain` 参考v1.0.4版本图
51-
5251
2. 开启之后,新建脚本,修改脚本或者导入插件的时候,只会编译而不会reload。通过`Ctrl+T`或者菜单`Tools/Reload Domain/Unlock Reload`,手动reload
53-
54-
3. 记住,Unity必须reload之后,才能调用相关域。例如新建mono脚本如果不reload是挂不到gameobject上的
55-
56-
4. 开启完全手动模式之后,除了手动reload和在重新编译代码进入play模式自动reload,其他任何时候都不会reload。
57-
52+
3. 记住,Unity必须reload之后,才能调用相关域。例如新建mono脚本如果不reload是挂不到gameobject上的。
53+
4. 当刚进入Play模式如果已经reload,则直接进入;如果没有reload则会强制reload(主要是为了重置static数据)
5854
5. 如遇到锁住问题(unity左下角一直出现🔒的情况) 按下Ctrl+Alt+T强制重载。
5955

60-
61-
6256
## 更新日志
6357

6458
#### v1.0.1
@@ -96,12 +90,6 @@ unity 提供了两个API `EditorApplication.LockReloadAssemblies();`和` EditorA
9690

9791
![image-20231227195442245](https://raw.githubusercontent.com/ZeroUltra/MediaLibrary/main/Imgs/202312271954071.png)
9892

99-
#### v1.0.7
100-
101-
* 添加完全手动模式。启用此选项后,不会在运行结束后强制reload domain来重置static数据。会更快的进入|退出播放模式。
102-
103-
![image-20240115235432167](https://raw.githubusercontent.com/ZeroUltra/MediaLibrary/main/Imgs/202401152354322.png)
104-
10593

10694

10795
`有什么问题,欢迎提Issues`

‎Editor/ManuallyReloadDomainTool.cs‎

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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))

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "com.zeroultra.manuallyreloaddomain",
3-
"version": "1.0.7",
3+
"version": "1.0.6",
44
"displayName": "ManuallyReloadDomain",
55
"description": "Manually Reload Domain",
66
"documentationUrl": "https://github.com/ZeroUltra/UnityManualReload",

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /