类参考入门

本页面解释如何编写类参考。您将学习如何为 WeDot 内置节点类型的类、方法和属性编写新的描述。

参考资料

  • 要了解如何使用 Git 版本控制系统向 WeDot 项目提交更改,请参阅更新类参考文档

每个类的参考都包含在一个类似于以下的 XML 文件中:

<class name="Node2D" inherits="CanvasItem" version="4.0">
    <brief_description>
        一个 2D 游戏对象,所有与 2D 相关的节点都继承自它。具有位置、旋转、缩放和 Z 索引。
    </brief_description>
    <description>
        一个 2D 游戏对象,具有变换(位置、旋转和缩放)。所有 2D 节点,包括物理对象和精灵,都继承自 Node2D。使用 Node2D 作为父节点可以在 2D 项目中移动、缩放和旋转子节点。还控制节点的渲染顺序。
    </description>
    <tutorials>
        <link title="自定义 2D 绘制">https://docs.WeDot.top/latest/tutorials/2d/custom_drawing_in_2d.html</link>
        <link title="所有 2D 示例">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>
                将当前缩放乘以 [code]ratio[/code] 向量。
            </description>
        </method>
        <method name="translate">
            <return type="void"></return>
            <argument index="0" name="offset" type="Vector2"></argument>
            <description>
                按给定的 [code]offset[/code] 在局部坐标系中平移节点。
            </description>
        </method>
    </methods>
    <members>
        <member name="global_position" type="Vector2" setter="set_global_position" getter="get_global_position">
            全局位置。
        </member>
        <member name="z_index" type="int" setter="set_z_index" getter="get_z_index" default="0">
            Z 索引。控制节点的渲染顺序。Z 索引较高的节点会显示在其他节点前面。
        </member>
    </members>
    <constants>
    </constants>
</class>

如何编辑类 XML

doc/classes/ 目录中编辑您选择的类文件以更新类参考。该文件夹包含每个类的 XML 文件。XML 列出了您将在类参考中找到的常量和方法。WeDot 自动生成并更新 XML。

使用 BBCode 样式标签改进格式

WeDot 的 XML 类参考支持 BBCode 样式的标签,用于链接以及格式化文本和代码。在下表中,您可以找到可用的标签、使用示例及其转换为 Markdown 后的结果。

链接

标签和描述示例结果
[Class]Move the [Sprite2D].Move the class_Sprite2D.
[annotation Class.name]See [annotation @GDScript.@rpc].See @GDScript.@rpc.
[constant Class.name]See [constant Color.RED].See Color.RED.
[enum Class.name]See [enum Mesh.ArrayType].See Mesh.ArrayType`.
[member Class.name]Get [member Node2D.scale].Get Node2D.scale.
[method Class.name]Call [method Node3D.hide].Call Node3D.hide.
[constructor Class.name]Use [constructor Color.Color].Use Color.Color.
[operator Class.name]Use [operator Color.operator *].Use Color.operator *.
[signal Class.name]Emit [signal Node.renamed].Emit Node.renamed.
[theme_item Class.name]See [theme_item Label.font].See Label.font.
[param name]Takes [param size] for the size.Takes size for the size.

格式化文本

标签和描述示例结果
[br]Line 1.[br]Line 2.Line 1.
Line 2.
[b] [i] [u] [s]Do [b]not[/b] call this method.Do not call this method.
[url] [url=URL][url]https://example.com[/url]https://example.com
[center][center]2 + 2 = 4[/center]
2 + 2 = 4
[kbd]Press [kbd]Ctrl + C[/kbd].Press Ctrl + C.
[code]Returns [code]true[/code].Returns true.

格式化代码块

  1. 使用 [codeblock] 如果您想添加特定语言的示例。
  2. 使用 [codeblocks] [gdscript][csharp] 如果您想同时添加 GDScript 和 C# 的示例。

示例:

[codeblock]
func _ready():
    var sprite = get_node("Sprite2D")
    print(sprite.get_pos())
[/codeblock]

显示为:

func _ready():
    var sprite = get_node("Sprite2D")
    print(sprite.get_pos())

如果需要提供不同语言版本的代码示例,使用 [codeblocks]

[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]

显示为:

func _ready():
    var sprite = get_node("Sprite2D")
    print(sprite.get_pos())
public override void _Ready()
{
    var sprite = GetNode("Sprite2D");
    GD.Print(sprite.GetPos());
}

格式化注意事项和警告

重要信息前加 [b]Note:[/b]

[b]Note:[/b] Only available when using the Vulkan renderer.

关键信息前加 [b]Warning:[/b]

[b]Warning:[/b] If this property is set to [code]true[/code], it allows clients to execute arbitrary code on the server.

标记 API 为废弃或实验性

要在 XML 中标记 API 为废弃或实验性,需要添加相应的 XML 属性。属性值必须是一条消息,解释为何不推荐使用该 API(支持 BBCode 标记)或为空字符串(使用默认消息)。

示例:

<class name="Parallax2D" inherits="Node2D" experimental="This node is meant to replace [ParallaxBackground] and [ParallaxLayer]. The implementation may change in the future." xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
    [...]
</class>

<constant name="RESPONSE_USE_PROXY" value="305" enum="ResponseCode" deprecated="Many clients ignore this response code for security reasons. It is also deprecated by the HTTP standard.">
    HTTP 状态码 [code]305 Use Proxy[/code]。
</constant>

<member name="auto_translate" type="bool" setter="set_auto_translate" getter="is_auto_translating" deprecated="Use [member Node.auto_translate_mode] instead.">
    根据当前区域设置自动更改任何文本。
</member>

<method name="get_method_call_mode" qualifiers="const" deprecated="Use [member AnimationMixer.callback_mode_method] instead.">
    <return type="int" enum="AnimationPlayer.AnimationMethodCallMode" />
    <description>
        返回“调用方法”轨道使用的调用模式。
    </description>
</method>