@@ -50,6 +50,9 @@ public static class CodeExecutorManager
5050
5151 #region Macro
5252
53+ // /// <summary>
54+ // /// 设置插件宏
55+ // /// </summary>
5356 // [InitializeOnLoadMethod]
5457 // public static void SetupMacro()
5558 // {
@@ -66,6 +69,10 @@ public static class CodeExecutorManager
6669
6770 #region Window
6871
72+ /// <summary>
73+ /// 打开窗口
74+ /// </summary>
75+ /// <param name="forceReopen"></param>
6976 public static void Open(bool forceReopen = false)
7077 {
7178 if (!forceReopen && CodeExecutorWindow.HasOpenInstances())
@@ -244,7 +251,7 @@ public static void RemoveSnippets(string[] guids)
244251
245252 #endregion
246253
247- #region Update Snippet
254+ #region Data Operation Snippet
248255
249256 /// <summary>
250257 /// 代码段名称非法字符
@@ -385,19 +392,19 @@ public static void RegisterExecMode(ExecutionMode mode)
385392 string modeName = mode.name;
386393 if (string.IsNullOrEmpty(modeName))
387394 {
388- Debug.LogError($"[CodeExecutor] Cannot register execution mode without a name!");
395+ Debug.LogError($"[CodeExecutor] Cannot register execution mode without a name!\n ");
389396 return;
390397 }
391398
392399 if (modeName.Equals(DefaultExecMode.name, StringComparison.OrdinalIgnoreCase))
393400 {
394- Debug.LogError($"[CodeExecutor] Cannot register execution mode with name '{modeName}'!");
401+ Debug.LogError($"[CodeExecutor] Cannot register execution mode with name '{modeName}'!\n ");
395402 return;
396403 }
397404
398405 if (ExecutionModes.ContainsKey(modeName))
399406 {
400- Debug.LogError($"[CodeExecutor] A Execution mode named '{modeName}' is already registered!");
407+ Debug.LogError($"[CodeExecutor] A Execution mode named '{modeName}' is already registered!\n ");
401408 return;
402409 }
403410
@@ -461,6 +468,41 @@ public static bool HasExecMode(string modeName)
461468 return mode;
462469 }
463470
471+ /// <summary>
472+ /// 重新注册所有执行模式
473+ /// </summary>
474+ public static void ReRegisterExecModes()
475+ {
476+ ExecutionModes.Clear();
477+ UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
478+ }
479+
480+ /// <summary>
481+ /// 启用内置的执行模式 C#
482+ /// </summary>
483+ public static bool enableBuiltinExecModeCSharp
484+ {
485+ get => CodeExecutorSettings.enableBuiltinExecModeCSharp;
486+ set
487+ {
488+ CodeExecutorSettings.enableBuiltinExecModeCSharp = value;
489+ ReRegisterExecModes();
490+ }
491+ }
492+
493+ /// <summary>
494+ /// 启用内置的执行模式 xLua
495+ /// </summary>
496+ public static bool enableBuiltinExecModeXLua
497+ {
498+ get => CodeExecutorSettings.enableBuiltinExecModeXLua;
499+ set
500+ {
501+ CodeExecutorSettings.enableBuiltinExecModeXLua = value;
502+ ReRegisterExecModes();
503+ }
504+ }
505+
464506 #endregion
465507
466508 #region Execution
@@ -475,13 +517,13 @@ internal static object[] ExecuteCode(string codeText, string modeName)
475517 {
476518 if (!ExecutionModes.TryGetValue(modeName, out ExecutionMode mode))
477519 {
478- Debug.LogError($"[CodeExecutor] No execution mode named '{modeName}' was found!");
520+ Debug.LogError($"[CodeExecutor] No execution mode named '{modeName}' was found!\n ");
479521 return null;
480522 }
481523
482524 if (mode.executor == null)
483525 {
484- Debug.LogError($"[CodeExecutor] Invalid executor for execution mode '{modeName}'!");
526+ Debug.LogError($"[CodeExecutor] Invalid executor for execution mode '{modeName}'!\n ");
485527 return null;
486528 }
487529
0 commit comments