此页面记录了 Godot 引擎中的文本编辑组件,概述了它们的架构、主要功能以及不同类之间的关系。这些组件对于引擎的编辑器界面和游戏 UI 系统都至关重要。有关在游戏开发中使用这些组件的信息,请参阅相关的类文档。
Godot 提供了几个具有不同用途的专用文本组件
此外,编辑器还实现了
来源
来源
TextEdit 是 Godot 中基础的多行文本编辑器控件。它负责
TextEdit 的核心是其管理文本数据的 Text 内部类
Text 类管理带有格式和视觉表示的单独文本行。每行包含
data)ime_data)来源
TextEdit 实现以下核心编辑操作
| 操作 | 描述 | 方法 |
|---|---|---|
| 插入文本 | 在光标位置插入文本 | insert_text_at_caret() |
| 删除文本 | 删除选中文本或光标处的字符 | _backspace(), _delete() |
| 复制 | 将选中文本复制到剪贴板 | _copy() |
| 剪切 | 将选中文本剪切到剪贴板 | _cut() |
| 粘贴 | 从剪贴板粘贴文本 | _paste() |
| 撤销/重做 | 跟踪并应用编辑历史 | undo(), redo() |
来源
TextEdit 支持多个光标和选择
来源
CodeEdit 扩展了 TextEdit,增加了特定于编程的功能
来源
CodeEdit 中的语法高亮是通过 SyntaxHighlighter 资源实现的
来源
LineEdit 是一个单行文本输入字段,处理
LineEdit 和 TextEdit 都支持非拉丁字符输入的输入法编辑器
来源
RichTextLabel 提供富文本显示功能
RichTextLabel 使用分层项模型来表示富文本
来源
RichTextLabel 解析 BBCode 标签来创建格式化文本
| 标签 | 示例 | 效果 |
|---|---|---|
| b | [b]粗体[/b] | 粗体文本 |
| i | [i]斜体[/i] | 斜体文本 |
| color | [color=red]彩色[/color] | 彩色文本 |
| font | [font=res://font.tres]自定义字体[/font] | 自定义字体 |
| img | [img]res://icon.png[/img] | 显示图像 |
| table | [table=2]cell1,cell2[/table] | 创建表格 |
| cell | [cell]内容[/cell] | 表格单元格 |
来源
Label 是最简单的文本显示控件
来源
编辑器在其核心控件之上实现了专门的文本组件
CodeTextEditor 包装 CodeEdit 以提供额外的编辑器功能
来源
ScriptTextEditor 扩展了 CodeTextEditor 以支持脚本编辑
来源
TextShaderEditor 提供专门的着色器编辑
来源
文本组件通过 DisplayServer 接口实现辅助功能
来源
文本组件处理不同级别的输入
_gui_input()_handle_unicode_input()来源
文本编辑组件通过以下方式与编辑器集成
来源
Godot 的文本编辑组件构成了引擎本身和游戏开发的一个综合系统。分层架构允许不同组件之间共享代码,同时在需要时实现专门化。
对于游戏开发者来说,LineEdit、TextEdit、RichTextLabel 和 Label 提供了各种文本输入和显示选项。对于插件开发者,编辑器实现展示了如何扩展这些组件以适应特定用例。