Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
EditorDebuggerPlugin¶
继承: RefCounted < Object
实现调试器插件的基类。
描述¶
编辑器调试器插件 EditorDebuggerPlugin 提供了与调试器的编辑器端相关的函数。
要与调试器交互,必须将这个类的实例通过 EditorPlugin.add_debugger_plugin 添加至编辑器。
添加完成后,会针对该插件可用的每一个编辑器调试器会话 EditorDebuggerSession 回调一次 _setup_session,后续有新的会话也会进行回调(这些会话在此阶段可能尚未激活)。
你可以通过 get_sessions 获取所有可用的 EditorDebuggerSession,也可以通过 get_session 获取特定的会话。
@tool
extends EditorPlugin
class ExampleEditorDebugger extends EditorDebuggerPlugin:
func _has_capture(prefix):
# 如果想要处理带有这个前缀的消息则返回 true。
return prefix == "my_plugin"
func _capture(message, data, session_id):
if message == "my_plugin:ping":
get_session(session_id).send_message("my_plugin:echo", data)
func _setup_session(session_id):
# 在调试器会话 UI 中添加新的选项卡,其中包含一个标签。
var label = Label.new()
label.name = "Example plugin"
label.text = "示例插件"
var session = get_session(session_id)
# 监听会话开始和停止信号。
session.started.connect(func (): print("会话已开始"))
session.stopped.connect(func (): print("会话已停止"))
session.add_session_tab(label)
var debugger = ExampleEditorDebugger.new()
func _enter_tree():
add_debugger_plugin(debugger)
func _exit_tree():
remove_debugger_plugin(debugger)
方法¶
void |
_breakpoint_set_in_tree(script: Script, line: int, enabled: bool) virtual |
void |
_breakpoints_cleared_in_tree() virtual |
_capture(message: String, data: Array, session_id: int) virtual |
|
void |
_goto_script_line(script: Script, line: int) virtual |
_has_capture(capture: String) virtual const |
|
void |
_setup_session(session_id: int) virtual |
get_session(id: int) |
|
方法说明¶
void _breakpoint_set_in_tree(script: Script, line: int, enabled: bool) virtual 🔗
覆盖此方法以便在编辑器中设置断点时收到通知。
void _breakpoints_cleared_in_tree() virtual 🔗
覆盖此方法以便当编辑器中所有断点被清除时收到通知。
bool _capture(message: String, data: Array, session_id: int) virtual 🔗
覆盖此方法以处理传入的消息。session_id
是接收到消息的 EditorDebuggerSession 的 ID(你可以通过 get_session 检索到它)。
void _goto_script_line(script: Script, line: int) virtual 🔗
覆盖此方法,当在调试器断点面板中单击断点行时收到通知。
bool _has_capture(capture: String) virtual const 🔗
覆盖此方法以启用从调试器接收消息。如果capture
是"my_message",那么以"my_message:"开头的消息将会传递到_capture方法。
void _setup_session(session_id: int) virtual 🔗
覆盖此方法,以在创建新的EditorDebuggerSession时被通知(此阶段期间可能处于非活动状态)。
EditorDebuggerSession get_session(id: int) 🔗
返回具有给定 id
的 EditorDebuggerSession。
返回该调试器插件当前可用的 EditorDebuggerSession 数组。
注意:数组中的会话可能处于非活动状态,请通过 EditorDebuggerSession.is_active 检查它们的状态。