@@ -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