Class reference writing guidelines

This page explains how to write the class reference. You will learn where to write new descriptions for the classes, methods, and properties for Godot’s built-in node types. 参见 为类参考手册贡献. The reference for each class is contained in an XML file like the one below:

  1. <class name="Node2D" inherits="CanvasItem" version="4.0"> <brief_description> A 2D game object, inherited by all 2D-related nodes. Has a position, rotation, scale, and Z index. </brief_description> <description> A 2D game object, with a transform (position, rotation, and scale). All 2D nodes, including physics objects and sprites, inherit from Node2D. Use Node2D as a parent node to move, scale and rotate children in a 2D project. Also gives control of the node's render order. </description> <tutorials> <link title="Custom drawing in 2D">https://docs.godotengine.org/en/latest/tutorials/2d/custom_drawing_in_2d.html</link> <link title="All 2D Demos">https://github.com/godotengine/godot-demo-projects/tree/master/2d</link> </tutorials> <methods> <method name="apply_scale"> <return type="void"> </return> <argument index="0" name="ratio" type="Vector2"> </argument> <description> Multiplies the current scale by the [code]ratio[/code] vector. </description> </method> [...] <method name="translate"> <return type="void"> </return> <argument index="0" name="offset" type="Vector2"> </argument> <description> Translates the node by the given [code]offset[/code] in local coordinates. </description> </method> </methods> <members> <member name="global_position" type="Vector2" setter="set_global_position" getter="get_global_position"> Global position. </member> [...] <member name="z_index" type="int" setter="set_z_index" getter="get_z_index" default="0"> Z index. Controls the order in which the nodes render. A node with a higher Z index will display in front of others. </member> </members> <constants> </constants></class>

It starts with brief and long descriptions. In the generated docs, the brief description is always at the top of the page, while the long description lies below the list of methods, variables, and constants. You can find methods, member variables, constants, and signals in separate XML nodes. For each, you want to learn how they work in Godot’s source code. Then, fill their documentation by completing or improving the text in these tags:

  • (in its tag; return types and arguments don’t take separate documentation strings)
  • (in its tag; arguments don’t take separate documentation strings)
  • writing guidelines to keep your descriptions short and easy to read. Do not leave empty lines in the descriptions: each line in the XML file will result in a new paragraph, even if it is empty.

    如何编辑类XML

    doc/classes/ to update the class reference. The folder contains an XML file for each class. The XML lists the constants and methods you will find in the class reference. Godot generates and updates the XML automatically. 注解 modules/<module_name>/doc_classes/ directory instead. Edit it using your favorite text editor. If you use a code editor, make sure that it doesn’t change the indent style: you should use tabs for the XML and four spaces inside BBCode-style blocks. More on that below. doc/ folder and run the command make rst. This will convert the XML files to the online documentation’s format and output errors if anything’s wrong. compilation guide. We recommend using a code editor that supports XML files like Vim, Atom, Visual Studio Code, Notepad++, or another to comfortably edit the file. You can also use their search feature to find classes and properties quickly.

    改进BBCode风格标签的格式

    Godot的类参考支持类似BBCode的标签. 它们为文本添加了漂亮的格式. 下面是可用标签的列表: [codeblock] for pre-formatted code blocks. Inside [codeblock], always use four spaces for indentation. The parser will delete tabs. For example:
    1. [codeblock]func _ready(): var sprite = get_node("Sprite2D") print(sprite.get_pos())[/codeblock]
    将显示为:
    1. func _ready(): var sprite = get_node("Sprite2D") print(sprite.get_pos())
    [codeblocks] instead. If you use [codeblocks], you also need to have at least one of the language-specific tags, [gdscript] and [csharp]. experimental code translation tool to speed up your workflow.
    1. [codeblocks][gdscript]func _ready(): var sprite = get_node("Sprite2D") print(sprite.get_pos())[/gdscript][csharp]public override void _Ready(){ var sprite = GetNode("Sprite2D"); GD.Print(sprite.GetPos());}[/csharp][/codeblocks]
    The above will display as: GDScript C#
    1. func _ready(): var sprite = get_node("Sprite2D") print(sprite.get_pos())
    1. public override void _Ready(){ var sprite = GetNode("Sprite2D"); GD.Print(sprite.GetPos());}
    要表示重要信息, 请在描述末尾添加一段以 “[b]注:[/b]“ 开头的内容:
    1. [b]Note:[/b] Only available when using the Vulkan renderer.
    为了表示如果不仔细遵循可能导致安全问题或数据丢失的关键信息, 请在描述末尾添加一段以 “[b]警告:[/b]“ 开头的内容:
    1. [b]Warning:[/b] If this property is set to [code]true[/code], it allows clients to execute arbitrary code on the server.
    对于不推荐使用的属性, 请添加以 “[i]deprecated.[/i]“ 开头的段落. 注意使用斜体代替粗体:
    1. [i]Deprecated.[/i] This property has been replaced by [member other_property].
    在上面描述的所有段落中, 确保标点符号是BBCode标签的一部分, 以保持一致性.

    我不知道这个方法干什么用!

    没问题. 将其留下, 并在你请求提取更改时列出跳过的方法. 别的编写者会处理它. Q&A website and Godot Contributors Chat.