mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2025-12-31 09:49:22 +03:00
Merge Sphinx translations with Weblate translations, sync classref
This commit is contained in:
@@ -5471,7 +5471,7 @@ enum **Variant.Operator**:
|
||||
|
||||
:ref:`Variant<class_Variant>` **clamp** **(** :ref:`Variant<class_Variant>` value, :ref:`Variant<class_Variant>` min, :ref:`Variant<class_Variant>` max **)**
|
||||
|
||||
钳制 ``value``\ ,返回不小于 ``min`` 且不大于 ``max`` 的 :ref:`Variant<class_Variant>`\ 。可以使用任何能够用小于和大于运算符进行比较的值。
|
||||
钳制 ``value``\ ,返回不小于 ``min`` 且不大于 ``max`` 的 :ref:`Variant<class_Variant>`\ 。任何能够用小于和大于运算符进行比较的值都能工作。
|
||||
|
||||
::
|
||||
|
||||
@@ -5480,20 +5480,10 @@ enum **Variant.Operator**:
|
||||
|
||||
var b = clamp(8.1, 0.9, 5.5)
|
||||
# b 是 5.5
|
||||
|
||||
var c = clamp(Vector2(-3.5, -4), Vector2(-3.2, -2), Vector2(2, 6.5))
|
||||
# c 是 (-3.2, -2)
|
||||
|
||||
var d = clamp(Vector2i(7, 8), Vector2i(-3, -2), Vector2i(2, 6))
|
||||
# d 是 (2, 6)
|
||||
|
||||
var e = clamp(Vector3(-7, 8.5, -3.8), Vector3(-3, -2, 5.4), Vector3(-2, 6, -4.1))
|
||||
# e 是 (-3, -2, 5.4)
|
||||
|
||||
var f = clamp(Vector3i(-7, -8, -9), Vector3i(-1, 2, 3), Vector3i(-4, -5, -6))
|
||||
# f 是 (-4, -5, -6)
|
||||
|
||||
\ **注意:**\ 为了更好的类型安全,请使用 :ref:`clampf<class_@GlobalScope_method_clampf>`\ 、\ :ref:`clampi<class_@GlobalScope_method_clampi>`\ 、\ :ref:`Vector2.clamp<class_Vector2_method_clamp>`\ 、\ :ref:`Vector2i.clamp<class_Vector2i_method_clamp>`\ 、\ :ref:`Vector3.clamp<class_Vector3_method_clamp>`\ 、\ :ref:`Vector3i.clamp<class_Vector3i_method_clamp>`\ 、\ :ref:`Vector4.clamp<class_Vector4_method_clamp>` 或 :ref:`Vector4i.clamp<class_Vector4i_method_clamp>`\ 。
|
||||
\ **注意:**\ 为了更好的类型安全,请使用 :ref:`clampf<class_@GlobalScope_method_clampf>`\ 、\ :ref:`clampi<class_@GlobalScope_method_clampi>`\ 、\ :ref:`Vector2.clamp<class_Vector2_method_clamp>`\ 、\ :ref:`Vector2i.clamp<class_Vector2i_method_clamp>`\ 、\ :ref:`Vector3.clamp<class_Vector3_method_clamp>`\ 、\ :ref:`Vector3i.clamp<class_Vector3i_method_clamp>`\ 、\ :ref:`Vector4.clamp<class_Vector4_method_clamp>`\ 、\ :ref:`Vector4i.clamp<class_Vector4i_method_clamp>` 或 :ref:`Color.clamp<class_Color_method_clamp>`\ (该方法当前不受支持)。
|
||||
|
||||
\ **注意:**\ 当在向量上使用该函数时,它\ *不*\ 会执行逐分量钳制,并且如果 ``value < min`` 则结果为 ``min``\ ,如果 ``value > max`` 则为 ``max``\ 。要执行逐分量钳制,请使用上面列出的方法。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -7293,6 +7283,8 @@ void **seed** **(** :ref:`int<class_int>` base **)**
|
||||
|
||||
\ **注意:**\ 如果需要对象序列化,参见 :ref:`var_to_bytes_with_objects<class_@GlobalScope_method_var_to_bytes_with_objects>`\ 。
|
||||
|
||||
\ **注意:**\ 编码 :ref:`Callable<class_Callable>` 不受支持,无论数据如何,都会导致空值。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
@@ -7305,6 +7297,8 @@ void **seed** **(** :ref:`int<class_int>` base **)**
|
||||
|
||||
将 :ref:`Variant<class_Variant>` 值编码为字节数组。允许对对象进行编码(并且可能包括可执行代码)。反序列化可以使用 :ref:`bytes_to_var_with_objects<class_@GlobalScope_method_bytes_to_var_with_objects>` 来完成。
|
||||
|
||||
\ **注意:**\ 编码 :ref:`Callable<class_Callable>` 不受支持,无论数据如何,都会导致空值。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
|
||||
@@ -17,13 +17,13 @@ AABB
|
||||
描述
|
||||
----
|
||||
|
||||
**AABB** 由一个位置、一个大小和若干实用函数组成。通常用于快速重叠测试。
|
||||
**AABB** 内置 :ref:`Variant<class_Variant>` 类型表示 3D 空间中的轴对齐边界框。它由其 :ref:`position<class_AABB_property_position>` 和 :ref:`size<class_AABB_property_size>` 定义,皆为 :ref:`Vector3<class_Vector3>` 类型。它经常被用于快速重叠测试(参见 :ref:`intersects<class_AABB_method_intersects>`\ )。虽然 **AABB** 本身是轴对齐的,但它可以与 :ref:`Transform3D<class_Transform3D>` 组合来表示旋转或倾斜的边界框。
|
||||
|
||||
它使用浮点坐标。\ **AABB** 的 2D 对应物为 :ref:`Rect2<class_Rect2>`\ 。
|
||||
它使用浮点坐标。\ **AABB** 的 2D 等效体是 :ref:`Rect2<class_Rect2>`\ 。没有使用整数坐标的 **AABB** 版本。
|
||||
|
||||
不支持负的 :ref:`size<class_AABB_property_size>`\ ,并且不适用于大多数方法。使用 :ref:`abs<class_AABB_method_abs>` 获得具有正尺寸的 AABB。
|
||||
\ **注意:**\ 不支持负的 :ref:`size<class_AABB_property_size>`\ 。对于负大小,大多数 **AABB** 方法都无法正常工作。使用 :ref:`abs<class_AABB_method_abs>` 获取具有非负大小的等效 **AABB**\ 。
|
||||
|
||||
\ **注意:**\ 与 :ref:`Rect2<class_Rect2>` 不同,\ **AABB** 没有使用整数坐标的变体。
|
||||
\ **注意:**\ 在布尔上下文中,如果 :ref:`position<class_AABB_property_position>` 和 :ref:`size<class_AABB_property_size>` 均为零(等于 :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`\ ),则 **AABB** 的计算结果为 ``false``\ 。否则,它的计算结果始终为 ``true``\ 。
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -163,7 +163,7 @@ AABB
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **end** = ``Vector3(0, 0, 0)``
|
||||
|
||||
终点角。通过 ``position + size`` 计算而来。设置该值会修改大小。
|
||||
终点。通常是边界框的前方右上角,等价于 ``position + size``\ 。设置该点会影响 :ref:`size<class_AABB_property_size>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -175,7 +175,7 @@ AABB
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **position** = ``Vector3(0, 0, 0)``
|
||||
|
||||
起点角。通常比 :ref:`end<class_AABB_property_end>` 小。
|
||||
原点。通常是边界框的背面左下角。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -187,9 +187,9 @@ AABB
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **size** = ``Vector3(0, 0, 0)``
|
||||
|
||||
从 :ref:`position<class_AABB_property_position>` 到 :ref:`end<class_AABB_property_end>` 的大小。通常所有分量都是正数。
|
||||
边界框的宽度、高度、深度,相对于 :ref:`position<class_AABB_property_position>`\ 。设置该值会影响终点 :ref:`end<class_AABB_property_end>`\ 。
|
||||
|
||||
如果大小为负,可以用 :ref:`abs<class_AABB_method_abs>` 修正。
|
||||
\ **注意:**\ 建议将宽度、高度、深度设置为非负数,因为 Godot 中的大多数方法假设 :ref:`position<class_AABB_property_position>` 为背面的左下角、\ :ref:`end<class_AABB_property_end>` 为正面的右上角。要获取等价且大小非负的边界框,请使用 :ref:`abs<class_AABB_method_abs>`\ 。
|
||||
|
||||
.. rst-class:: classref-section-separator
|
||||
|
||||
@@ -206,7 +206,7 @@ AABB
|
||||
|
||||
:ref:`AABB<class_AABB>` **AABB** **(** **)**
|
||||
|
||||
默认构造 **AABB**\ ,\ :ref:`position<class_AABB_property_position>` 和 :ref:`size<class_AABB_property_size>` 均为默认值(零)。
|
||||
构造 **AABB**\ ,并将 :ref:`position<class_AABB_property_position>` 和 :ref:`size<class_AABB_property_size>` 设置为 :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -226,7 +226,7 @@ AABB
|
||||
|
||||
:ref:`AABB<class_AABB>` **AABB** **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` size **)**
|
||||
|
||||
从一个位置和大小构造 **AABB** 。
|
||||
使用指定的 ``position`` 和 ``size`` 构造 **AABB**\ 。
|
||||
|
||||
.. rst-class:: classref-section-separator
|
||||
|
||||
@@ -243,7 +243,28 @@ AABB
|
||||
|
||||
:ref:`AABB<class_AABB>` **abs** **(** **)** |const|
|
||||
|
||||
返回等价的 AABB,其原点被修正至最负数的角落,大小被修正为正数。
|
||||
返回一个与该边界框等效的 **AABB**\ ,其宽度、高度和深度被修改为非负值。
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
var box = AABB(Vector3(5, 0, 5), Vector3(-20, -10, -5))
|
||||
var absolute = box.abs()
|
||||
print(absolute.position) # 打印 (-15, -10, 0)
|
||||
print(absolute.size) # 打印 (20, 10, 5)
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
var box = new Aabb(new Vector3(5, 0, 5), new Vector3(-20, -10, -5));
|
||||
var absolute = box.Abs();
|
||||
GD.Print(absolute.Position); // 打印 (-15, -10, 0)
|
||||
GD.Print(absolute.Size); // 打印 (20, 10, 5)
|
||||
|
||||
|
||||
|
||||
\ **注意:**\ 当 :ref:`size<class_AABB_property_size>` 为负时,建议使用该方法,因为 Godot 中的大多数其他方法都假设 :ref:`size<class_AABB_property_size>` 的分量大于 ``0``\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -255,7 +276,32 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **encloses** **(** :ref:`AABB<class_AABB>` with **)** |const|
|
||||
|
||||
该 **AABB** 完全包含另一个时,返回 ``true``\ 。
|
||||
如果该边界框\ *完全*\ 包围 ``with`` 框,则返回 ``true``\ 。两个框的边都包括在内。
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
var a = AABB(Vector3(0, 0, 0), Vector3(4, 4, 4))
|
||||
var b = AABB(Vector3(1, 1, 1), Vector3(3, 3, 3))
|
||||
var c = AABB(Vector3(2, 2, 2), Vector3(8, 8, 8))
|
||||
|
||||
print(a.encloses(a)) # 打印 true
|
||||
print(a.encloses(b)) # 打印 true
|
||||
print(a.encloses(c)) # 打印 false
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
var a = new Aabb(new Vector3(0, 0, 0), new Vector3(4, 4, 4));
|
||||
var b = new Aabb(new Vector3(1, 1, 1), new Vector3(3, 3, 3));
|
||||
var c = new Aabb(new Vector3(2, 2, 2), new Vector3(8, 8, 8));
|
||||
|
||||
GD.Print(a.Encloses(a)); // 打印 True
|
||||
GD.Print(a.Encloses(b)); // 打印 True
|
||||
GD.Print(a.Encloses(c)); // 打印 False
|
||||
|
||||
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -267,26 +313,34 @@ AABB
|
||||
|
||||
:ref:`AABB<class_AABB>` **expand** **(** :ref:`Vector3<class_Vector3>` to_point **)** |const|
|
||||
|
||||
返回该 **AABB** 的副本,该副本扩展至包含给出的点。
|
||||
|
||||
\ **例子:**\
|
||||
返回该边界框的副本,如有必要,该边界框被扩展为将边与给定的 ``to_point`` 对齐。
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
# 位置 (-3, 2, 0),大小 (1, 1, 1)
|
||||
var box = AABB(Vector3(-3, 2, 0), Vector3(1, 1, 1))
|
||||
# 位置 (-3, -1, 0),大小 (3, 4, 2),包含原来的 AABB 和 Vector3(0, -1, 2)
|
||||
var box2 = box.expand(Vector3(0, -1, 2))
|
||||
var box = AABB(Vector3(0, 0, 0), Vector3(5, 2, 5))
|
||||
|
||||
box = box.expand(Vector3(10, 0, 0))
|
||||
print(box.position) # 打印 (0, 0, 0)
|
||||
print(box.size) # 打印 (10, 2, 5)
|
||||
|
||||
box = box.expand(Vector3(-5, 0, 5))
|
||||
print(box.position) # 打印 (-5, 0, 0)
|
||||
print(box.size) # 打印 (15, 2, 5)
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
// 位置 (-3, 2, 0),大小 (1, 1, 1)
|
||||
var box = new Aabb(new Vector3(-3, 2, 0), new Vector3(1, 1, 1));
|
||||
// 位置 (-3, -1, 0),大小 (3, 4, 2),包含原来的 AABB 和 Vector3(0, -1, 2)
|
||||
var box2 = box.Expand(new Vector3(0, -1, 2));
|
||||
var box = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 5));
|
||||
|
||||
box = box.Expand(new Vector3(10, 0, 0));
|
||||
GD.Print(box.Position); // 打印 (0, 0, 0)
|
||||
GD.Print(box.Size); // 打印 (10, 2, 5)
|
||||
|
||||
box = box.Expand(new Vector3(-5, 0, 5));
|
||||
GD.Print(box.Position); // 打印 (-5, 0, 0)
|
||||
GD.Print(box.Size); // 打印 (15, 2, 5)
|
||||
|
||||
|
||||
|
||||
@@ -300,7 +354,7 @@ AABB
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **get_center** **(** **)** |const|
|
||||
|
||||
返回该 **AABB** 的中心点,等于 :ref:`position<class_AABB_property_position>` + (:ref:`size<class_AABB_property_size>` / 2)。
|
||||
返回该边界框的中心点。这与 ``position + (size / 2.0)`` 相同。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -312,7 +366,7 @@ AABB
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **get_endpoint** **(** :ref:`int<class_int>` idx **)** |const|
|
||||
|
||||
获取该 **AABB** 的 8 个端点的位置。
|
||||
返回组成该边界框的 8 个顶点之一的位置。当 ``idx`` 为 ``0`` 时,这与 :ref:`position<class_AABB_property_position>` 相同;\ ``idx`` 为 ``7`` 时,与 :ref:`end<class_AABB_property_end>` 相同。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -324,7 +378,30 @@ AABB
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **get_longest_axis** **(** **)** |const|
|
||||
|
||||
返回该 **AABB** 归一化后的最长轴。
|
||||
返回该边界框的 :ref:`size<class_AABB_property_size>` 的最长归一化轴,作为 :ref:`Vector3<class_Vector3>`\ (\ :ref:`Vector3.RIGHT<class_Vector3_constant_RIGHT>`\ 、\ :ref:`Vector3.UP<class_Vector3_constant_UP>` 或 :ref:`Vector3.BACK<class_Vector3_constant_BACK>`\ )。
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))
|
||||
|
||||
print(box.get_longest_axis()) # 打印 (0, 0, 1)
|
||||
print(box.get_longest_axis_index()) # 打印 2
|
||||
print(box.get_longest_axis_size()) # 打印 8
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));
|
||||
|
||||
GD.Print(box.GetLongestAxis()); // 打印 (0, 0, 1)
|
||||
GD.Print(box.GetLongestAxisIndex()); // 打印 2
|
||||
GD.Print(box.GetLongestAxisSize()); // 打印 8
|
||||
|
||||
|
||||
|
||||
另见 :ref:`get_longest_axis_index<class_AABB_method_get_longest_axis_index>` 和 :ref:`get_longest_axis_size<class_AABB_method_get_longest_axis_size>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -336,7 +413,9 @@ AABB
|
||||
|
||||
:ref:`int<class_int>` **get_longest_axis_index** **(** **)** |const|
|
||||
|
||||
返回该 **AABB** 最长轴的索引(根据 :ref:`Vector3<class_Vector3>` 的 ``AXIS_*`` 常量)。
|
||||
返回该边界框的 :ref:`size<class_AABB_property_size>` 的最长轴的索引(请参阅 :ref:`Vector3.AXIS_X<class_Vector3_constant_AXIS_X>`\ 、\ :ref:`Vector3.AXIS_Y<class_Vector3_constant_AXIS_Y>`\ 、和 :ref:`Vector3.AXIS_Z<class_Vector3_constant_AXIS_Z>`\ )。
|
||||
|
||||
有关示例,请参阅 :ref:`get_longest_axis<class_AABB_method_get_longest_axis>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -348,7 +427,9 @@ AABB
|
||||
|
||||
:ref:`float<class_float>` **get_longest_axis_size** **(** **)** |const|
|
||||
|
||||
返回该 **AABB** 最长轴的标量长度。
|
||||
返回该边界框的 :ref:`size<class_AABB_property_size>` 的最长尺度。
|
||||
|
||||
有关示例,请参阅 :ref:`get_longest_axis<class_AABB_method_get_longest_axis>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -360,7 +441,30 @@ AABB
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **get_shortest_axis** **(** **)** |const|
|
||||
|
||||
返回该 **AABB** 归一化后的最短轴。
|
||||
返回该边界框的 :ref:`size<class_AABB_property_size>` 的最短归一化轴,作为 :ref:`Vector3<class_Vector3>`\ (\ :ref:`Vector3.RIGHT<class_Vector3_constant_RIGHT>`\ 、\ :ref:`Vector3.UP<class_Vector3_constant_UP>`\ 、或 :ref:`Vector3.BACK<class_Vector3_constant_BACK>`\ )。
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
var box = AABB(Vector3(0, 0, 0), Vector3(2, 4, 8))
|
||||
|
||||
print(box.get_shortest_axis()) # 打印 (1, 0, 0)
|
||||
print(box.get_shortest_axis_index()) # 打印 0
|
||||
print(box.get_shortest_axis_size()) # 打印 2
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
var box = new Aabb(new Vector3(0, 0, 0), new Vector3(2, 4, 8));
|
||||
|
||||
GD.Print(box.GetShortestAxis()); // 打印 (1, 0, 0)
|
||||
GD.Print(box.GetShortestAxisIndex()); // 打印 0
|
||||
GD.Print(box.GetShortestAxisSize()); // 打印 2
|
||||
|
||||
|
||||
|
||||
另见 :ref:`get_shortest_axis_index<class_AABB_method_get_shortest_axis_index>` 和 :ref:`get_shortest_axis_size<class_AABB_method_get_shortest_axis_size>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -372,7 +476,9 @@ AABB
|
||||
|
||||
:ref:`int<class_int>` **get_shortest_axis_index** **(** **)** |const|
|
||||
|
||||
返回该 **AABB** 最短轴的索引(根据 :ref:`Vector3<class_Vector3>`::AXIS\* 常量)。
|
||||
返回该边界框的 :ref:`size<class_AABB_property_size>` 的最短轴的索引(请参阅 :ref:`Vector3.AXIS_X<class_Vector3_constant_AXIS_X>`\ 、\ :ref:`Vector3.AXIS_Y<class_Vector3_constant_AXIS_Y>`\ 、和 :ref:`Vector3.AXIS_Z<class_Vector3_constant_AXIS_Z>`\ )。
|
||||
|
||||
有关示例,请参阅 :ref:`get_shortest_axis<class_AABB_method_get_shortest_axis>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -384,7 +490,9 @@ AABB
|
||||
|
||||
:ref:`float<class_float>` **get_shortest_axis_size** **(** **)** |const|
|
||||
|
||||
返回该 **AABB** 最短轴的标量长度。
|
||||
返回该边界框的 :ref:`size<class_AABB_property_size>` 的最短尺度。
|
||||
|
||||
有关示例,请参阅 :ref:`get_shortest_axis<class_AABB_method_get_shortest_axis>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -396,7 +504,7 @@ AABB
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **get_support** **(** :ref:`Vector3<class_Vector3>` dir **)** |const|
|
||||
|
||||
返回指定方向上最远的 AABB 顶点。该点通常称为碰撞检测算法的支撑点。
|
||||
返回给定方向上最远的边界框的顶点位置。该点在碰撞检测算法中通常被称为支撑点。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -408,7 +516,7 @@ AABB
|
||||
|
||||
:ref:`float<class_float>` **get_volume** **(** **)** |const|
|
||||
|
||||
返回该 **AABB** 的体积。
|
||||
返回该边界框的体积。这相当于 ``size.x * size.y * size.z``\ 。另请参阅 :ref:`has_volume<class_AABB_method_has_volume>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -420,7 +528,32 @@ AABB
|
||||
|
||||
:ref:`AABB<class_AABB>` **grow** **(** :ref:`float<class_float>` by **)** |const|
|
||||
|
||||
返回 **AABB** 的副本,该副本向所有方向增长了给定数量的单位。
|
||||
返回该边界框的副本,该边界框在所有边上扩展给定量 ``by``\ 。负数会缩小该框。
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
var a = AABB(Vector3(4, 4, 4), Vector3(8, 8, 8)).grow(4)
|
||||
print(a.position) # 打印 (0, 0, 0)
|
||||
print(a.size) # 打印 (16, 16, 16)
|
||||
|
||||
var b = AABB(Vector3(0, 0, 0), Vector3(8, 4, 2)).grow(2)
|
||||
print(b.position) # 打印 (-2, -2, -2)
|
||||
print(b.size) # 打印 (12, 8, 6)
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
var a = new Aabb(new Vector3(4, 4, 4), new Vector3(8, 8, 8)).Grow(4);
|
||||
GD.Print(a.Position); // 打印 (0, 0, 0)
|
||||
GD.Print(a.Size); // 打印 (16, 16, 16)
|
||||
|
||||
var b = new Aabb(new Vector3(0, 0, 0), new Vector3(8, 4, 2)).Grow(2);
|
||||
GD.Print(b.Position); // 打印 (-2, -2, -2)
|
||||
GD.Print(b.Size); // 打印 (12, 8, 6)
|
||||
|
||||
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -432,9 +565,9 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **has_point** **(** :ref:`Vector3<class_Vector3>` point **)** |const|
|
||||
|
||||
如果 **AABB** 包含点,则返回 ``true``\ 。AABB 表面上的点被视为包括在内,但浮点精度误差可能会影响此类检测的准确性。
|
||||
如果该边界框包含给定的 ``point``\ ,则返回 ``true``\ 。依照惯例,\ **不**\ 包括正好位于右侧、顶部和前侧的点。
|
||||
|
||||
\ **注意:**\ 这种方法对于具有\ *负尺寸*\ 的 **AABB** 是不可靠的。使用 :ref:`abs<class_AABB_method_abs>` 获得一个正尺寸的等效 **AABB** 在检查是否包含点。
|
||||
\ **注意:**\ 对于具有\ *负* :ref:`size<class_AABB_property_size>` 的 **AABB**\ ,该方法并不可靠。请首先使用 :ref:`abs<class_AABB_method_abs>` 获取一个有效的边界框。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -446,7 +579,7 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **has_surface** **(** **)** |const|
|
||||
|
||||
如果 **AABB** 具有表面或长度,则返回 ``true``\ ;如果 **AABB** 为空(\ :ref:`size<class_AABB_property_size>` 的所有分量为零或负),则返回 ``false``\ 。
|
||||
如果该边界框具有表面或长度,即 :ref:`size<class_AABB_property_size>` 的至少一个分量大于 ``0``\ ,则返回 ``true``\ 。否则,返回 ``false``\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -458,7 +591,7 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **has_volume** **(** **)** |const|
|
||||
|
||||
如果 **AABB** 有体积,则返回 ``true``\ ;如果 **AABB** 是扁平的、空的或具有负的 :ref:`size<class_AABB_property_size>`\ ,则返回 ``false``\ 。
|
||||
如果该边界框的宽度、高度和深度均为正值,则返回 ``true``\ 。另见 :ref:`get_volume<class_AABB_method_get_volume>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -470,7 +603,32 @@ AABB
|
||||
|
||||
:ref:`AABB<class_AABB>` **intersection** **(** :ref:`AABB<class_AABB>` with **)** |const|
|
||||
|
||||
返回两个 **AABB** 的交叠区域。失败时返回空的 AABB(大小为 ``(0, 0, 0)``\ )。
|
||||
返回该边界框与 ``with`` 之间的交集。如果框不相交,则返回空的 **AABB**\ 。如果框在边相交,则返回没有体积的平 **AABB**\ (请参阅 :ref:`has_surface<class_AABB_method_has_surface>` 和 :ref:`has_volume<class_AABB_method_has_volume>`\ )。
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
var box1 = AABB(Vector3(0, 0, 0), Vector3(5, 2, 8))
|
||||
var box2 = AABB(Vector3(2, 0, 2), Vector3(8, 4, 4))
|
||||
|
||||
var intersection = box1.intersection(box2)
|
||||
print(intersection.position) # 打印 (2, 0, 2)
|
||||
print(intersection.size) # 打印 (3, 2, 4)
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
var box1 = new Aabb(new Vector3(0, 0, 0), new Vector3(5, 2, 8));
|
||||
var box2 = new Aabb(new Vector3(2, 0, 2), new Vector3(8, 4, 4));
|
||||
|
||||
var intersection = box1.Intersection(box2);
|
||||
GD.Print(intersection.Position); // 打印 (2, 0, 2)
|
||||
GD.Print(intersection.Size); // 打印 (3, 2, 4)
|
||||
|
||||
|
||||
|
||||
\ **注意:**\ 如果你只需要知道两个边界框是否相交,请改用 :ref:`intersects<class_AABB_method_intersects>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -482,7 +640,7 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **intersects** **(** :ref:`AABB<class_AABB>` with **)** |const|
|
||||
|
||||
该 **AABB** 与另一个交叠时,返回 ``true``\ 。
|
||||
如果该边界框与框 ``with`` 重叠,则返回 ``true``\ 。两个框的边\ *总是*\ 被排除。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -494,7 +652,7 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **intersects_plane** **(** :ref:`Plane<class_Plane>` plane **)** |const|
|
||||
|
||||
该 **AABB** 同时位于指定平面的两边时,返回 ``true``\ 。
|
||||
如果该边界框位于给定 ``plane`` 的两侧,则返回 ``true``\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -506,7 +664,9 @@ AABB
|
||||
|
||||
:ref:`Variant<class_Variant>` **intersects_ray** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` dir **)** |const|
|
||||
|
||||
返回给定的射线与该 **AABB** 的交点,如果不相交则返回 ``null``\ 。射线无限长。
|
||||
返回该边界框与给定射线相交的第一个点,作为 :ref:`Vector3<class_Vector3>`\ 。如果没有交集存在,则返回 ``null``\ 。
|
||||
|
||||
射线从 ``from`` 开始,面向 ``dir`` 并向无穷远延伸。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -518,7 +678,9 @@ AABB
|
||||
|
||||
:ref:`Variant<class_Variant>` **intersects_segment** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)** |const|
|
||||
|
||||
如果没有交点,则返回 ``null``\ ,否则返回 ``from`` 和 ``to`` 与此 **AABB** 的交点。
|
||||
返回该边界框与给定线段相交的第一个点,作为 :ref:`Vector3<class_Vector3>`\ 。如果没有交集存在,则返回 ``null``\ 。
|
||||
|
||||
该线段从 ``from`` 开始,到 ``to`` 结束。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -530,7 +692,7 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`AABB<class_AABB>` aabb **)** |const|
|
||||
|
||||
如果该 **AABB** 和 ``aabb`` 近似相等,则返回 ``true``\ ,通过在每个分量上调用 :ref:`@GlobalScope.is_equal_approx<class_@GlobalScope_method_is_equal_approx>`\ 。
|
||||
如果该边界框和 ``aabb`` 近似相等,则返回 ``true``\ ,判断方法是通过在 :ref:`position<class_AABB_property_position>` 和 :ref:`size<class_AABB_property_size>` 上调用 :ref:`Vector3.is_equal_approx<class_Vector3_method_is_equal_approx>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -542,7 +704,7 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **is_finite** **(** **)** |const|
|
||||
|
||||
如果该 **AABB** 是有限的,则返回 ``true``\ ,方法是在每个分量上调用 :ref:`@GlobalScope.is_finite<class_@GlobalScope_method_is_finite>`\ 。
|
||||
如果该边界框的值是有限的,则返回 ``true``\ ,判断方法是通过在 :ref:`position<class_AABB_property_position>` 和 :ref:`size<class_AABB_property_size>` 上调用 :ref:`Vector3.is_finite<class_Vector3_method_is_finite>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -554,7 +716,7 @@ AABB
|
||||
|
||||
:ref:`AABB<class_AABB>` **merge** **(** :ref:`AABB<class_AABB>` with **)** |const|
|
||||
|
||||
返回同时包含该 **AABB** 和 ``with`` 的更大的 **AABB**\ 。
|
||||
返回边界包围该边界框和 ``with`` 的 **AABB**\ 。另见 :ref:`encloses<class_AABB_method_encloses>`\ 。
|
||||
|
||||
.. rst-class:: classref-section-separator
|
||||
|
||||
@@ -571,7 +733,7 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **operator !=** **(** :ref:`AABB<class_AABB>` right **)**
|
||||
|
||||
如果 AABB 不相等,则返回 ``true``\ 。
|
||||
如果两个边界框的 :ref:`position<class_AABB_property_position>` 不相等或 :ref:`size<class_AABB_property_size>` 不相等,则返回 ``true``\ 。
|
||||
|
||||
\ **注意:**\ 由于浮点数精度误差,请考虑改用 :ref:`is_equal_approx<class_AABB_method_is_equal_approx>`\ ,会更可靠。
|
||||
|
||||
@@ -601,7 +763,7 @@ AABB
|
||||
|
||||
:ref:`bool<class_bool>` **operator ==** **(** :ref:`AABB<class_AABB>` right **)**
|
||||
|
||||
如果 AABB 完全相等,则返回 ``true``\ 。
|
||||
如果两个边界框的 :ref:`position<class_AABB_property_position>` 完全相等且 :ref:`size<class_AABB_property_size>` 完全相等,则返回 ``true``\ 。
|
||||
|
||||
\ **注意:**\ 由于浮点数精度误差,请考虑改用 :ref:`is_equal_approx<class_AABB_method_is_equal_approx>`\ ,会更可靠。
|
||||
|
||||
|
||||
@@ -26,23 +26,25 @@ Animation
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
# 创建动画,让“Enemy”节点在 0.5 秒内
|
||||
# 创建动画,让“Enemy”节点在 2.0 秒内
|
||||
# 向右移动 100 像素。
|
||||
var animation = Animation.new()
|
||||
var track_index = animation.add_track(Animation.TYPE_VALUE)
|
||||
animation.track_set_path(track_index, "Enemy:position:x")
|
||||
animation.track_insert_key(track_index, 0.0, 0)
|
||||
animation.track_insert_key(track_index, 0.5, 100)
|
||||
animation.track_insert_key(track_index, 2.0, 100)
|
||||
animation.length = 2.0
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
# 创建动画,让“Enemy”节点在 0.5 秒内
|
||||
# 创建动画,让“Enemy”节点在 2.0 秒内
|
||||
# 向右移动 100 像素。
|
||||
var animation = new Animation();
|
||||
int trackIndex = animation.AddTrack(Animation.TrackType.Value);
|
||||
animation.TrackSetPath(trackIndex, "Enemy:position:x");
|
||||
animation.TrackInsertKey(trackIndex, 0.0f, 0);
|
||||
animation.TrackInsertKey(trackIndex, 0.5f, 100);
|
||||
animation.TrackInsertKey(trackIndex, 2.0f, 100);
|
||||
animation.Length = 2.0f;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -936,7 +936,7 @@ void **make_read_only** **(** **)**
|
||||
|
||||
:ref:`Variant<class_Variant>` **pop_at** **(** :ref:`int<class_int>` position **)**
|
||||
|
||||
移除并返回数组中位于 ``position`` 索引处的元素。如果 ``position`` 为负数,则认为是相对于该数组末尾的值。如果该数组为空,则返回 ``null``\ ,不会改动数组。数组访问越界时会输出错误消息,但如果数组为空时不会。
|
||||
移除并返回数组中位于 ``position`` 索引处的元素。如果 ``position`` 为负数,则认为是相对于该数组末尾的值。如果该数组为空或访问越界,则保持该数组不变并返回 ``null``\ 。数组访问越界时会输出错误消息,但如果数组为空时不会。
|
||||
|
||||
\ **注意:**\ 在较大的数组上,这个方法会比 :ref:`pop_back<class_Array_method_pop_back>` 慢,因为会对移除元素后的数组元素重新进行索引。数组越大,或者移除元素的索引越小,\ :ref:`pop_at<class_Array_method_pop_at>` 就越慢。
|
||||
|
||||
@@ -1047,6 +1047,8 @@ void **remove_at** **(** :ref:`int<class_int>` position **)**
|
||||
|
||||
调整数组的大小,让包含的元素数量发生变化。如果数组变小则清除多余元素,变大则新元素为 ``null``\ 。成功时返回 :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>`\ ,操作失败时返回其他 :ref:`Error<enum_@GlobalScope_Error>` 值。
|
||||
|
||||
调用一次 :ref:`resize<class_Array_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
\ **注意:**\ 这个方法是就地操作的,不返回修改后的数组。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -23,7 +23,7 @@ Basis
|
||||
|
||||
基也可以作为 3D 向量的数组访问。这些向量通常彼此正交,但(由于缩放)不一定是归一化的。
|
||||
|
||||
更多信息请阅读文档文章《矩阵与变换》。
|
||||
有关一般介绍,请参阅 :doc:`矩阵与变换 <../tutorials/math/matrices_and_transforms>` 教程。
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ CanvasTexture
|
||||
|
||||
**CanvasTexture** 是用于 2D 渲染的 :ref:`ImageTexture<class_ImageTexture>` 的替代品。它允许在任何继承自 :ref:`CanvasItem<class_CanvasItem>` 的节点中使用法线贴图和镜面贴图。\ **CanvasTexture** 还允许独立于节点的属性(或项目设置)覆盖纹理的过滤模式和重复模式。
|
||||
|
||||
\ **注意:**\ **CanvasTexture** 不能用于 3D 渲染。对于 3D 中基于物理的材质,请使用 :ref:`BaseMaterial3D<class_BaseMaterial3D>` 来代替。
|
||||
\ **注意:**\ **CanvasTexture** 不能在 3D 中使用。当应用于任何 :ref:`VisualInstance3D<class_VisualInstance3D>`\ ,例如 :ref:`Sprite3D<class_Sprite3D>` 或 :ref:`Decal<class_Decal>` 时,它将无法正确显示。对于 3D 中基于物理的材质,请改用 :ref:`BaseMaterial3D<class_BaseMaterial3D>`\ 。
|
||||
|
||||
.. rst-class:: classref-introduction-group
|
||||
|
||||
|
||||
@@ -166,6 +166,8 @@ enum **BuildMode**:
|
||||
|
||||
该多边形的顶点列表。每个点都与下一个点相连,最后一个点与第一个点相连。
|
||||
|
||||
\ **注意:**\ 返回的顶点位于给定的 **CollisionPolygon2D** 的局部坐标空间中。
|
||||
|
||||
\ **警告:**\ 返回值是 :ref:`PackedVector2Array<class_PackedVector2Array>` 的副本,不是引用。
|
||||
|
||||
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
|
||||
|
||||
@@ -219,7 +219,7 @@ enum **SkyMode**:
|
||||
- void **set_param** **(** :ref:`float<class_float>` value **)**
|
||||
- :ref:`float<class_float>` **get_param** **(** **)**
|
||||
|
||||
设置定向阴影圆斑的大小。该圆斑偏移了阴影的相机视锥体的起点,为阴影提供更高的有效深度分辨率。但是,较大的圆斑大小会导致靠近视锥体边缘的大型物体的阴影出现伪影。减少该圆斑的大小会有所帮助。将大小设置为 ``0`` 会关闭该圆斑效果。
|
||||
设置定向阴影压平区域的大小。压平区域会偏移阴影相机视锥体的起点,为阴影提供更高的有效深度分辨率。但是,较大的压平区大小会导致靠近视锥体边缘的大型物体的阴影出现伪影。减少压平区大小会有所帮助。将大小设置为 ``0`` 会关闭该压平效果。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@ Engine
|
||||
- void **set_physics_jitter_fix** **(** :ref:`float<class_float>` value **)**
|
||||
- :ref:`float<class_float>` **get_physics_jitter_fix** **(** **)**
|
||||
|
||||
控制物理周期与实际时间的同步程度。如果小于等于 0,则周期是同步的。这样的值建议用于网络游戏,因为时钟的同步性很重要。较高的值会导致游戏中的时钟和真实时钟之间的偏差较大,但可以平滑帧速率的抖动。默认值0.5对大多数人来说应该是良好的;超过2的值可能导致游戏对掉帧的反应有明显的延迟,因此不推荐使用。
|
||||
控制物理周期与实际时间的同步程度。如果小于等于 0,则周期是同步的。这样的值建议用于网络游戏,因为时钟的同步性很重要。较高的值会导致游戏中的时钟和真实时钟之间的偏差较大,但可以平滑帧速率的抖动。默认值 0.5 对于大多数人来说应该足够好了;超过 2 的值可能导致游戏对掉帧的反应有明显的延迟,因此不推荐使用。
|
||||
|
||||
\ **注意:**\ 为了获得最佳效果,当使用自定义物理插值这种解决方案时,应通过将 :ref:`physics_jitter_fix<class_Engine_property_physics_jitter_fix>` 设置为 ``0`` 来禁用物理抖动修复。
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@ GraphEdit
|
||||
|
||||
**begin_node_move** **(** **)**
|
||||
|
||||
在 GraphNode 移动开始时发出。
|
||||
在 :ref:`GraphElement<class_GraphElement>` 移动开始时发出。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -266,7 +266,7 @@ GraphEdit
|
||||
|
||||
**copy_nodes_request** **(** **)**
|
||||
|
||||
当用户按下 :kbd:`Ctrl + C` 时发出。
|
||||
当该 **GraphEdit** 捕获 ``ui_copy`` 动作(默认情况下为 :kbd:`Ctrl + C`\ )时发出。一般来说,该信号指示所选的 :ref:`GraphElement<class_GraphElement>` 应被复制。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -278,7 +278,9 @@ GraphEdit
|
||||
|
||||
**delete_nodes_request** **(** :ref:`StringName[]<class_StringName>` nodes **)**
|
||||
|
||||
当尝试从该 GraphEdit 中移除一个 GraphNode 时触发。提供要移除的节点名称列表(所有选中的节点,除去不包含关闭按钮的节点)。
|
||||
当该 **GraphEdit** 捕获 ``ui_graph_delete`` 动作(默认为 :kbd:`Delete`\ )时触发。
|
||||
|
||||
\ ``nodes`` 是应被移除的节点的名称的数组。这些通常包括所有选定的节点。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -302,7 +304,7 @@ GraphEdit
|
||||
|
||||
**duplicate_nodes_request** **(** **)**
|
||||
|
||||
当 GraphNode 试图在 GraphEdit 中被复制时发出的。
|
||||
当该 **GraphEdit** 捕获 ``ui_graph_duplicate`` 动作(默认为 :kbd:`Ctrl + D`\ )时触发。一般来说,该信号指示应被复制的所选的 :ref:`GraphElement<class_GraphElement>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -314,7 +316,7 @@ GraphEdit
|
||||
|
||||
**end_node_move** **(** **)**
|
||||
|
||||
在 GraphNode 移动结束时发出。
|
||||
在 :ref:`GraphElement<class_GraphElement>` 移动结束时发出。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -326,9 +328,7 @@ GraphEdit
|
||||
|
||||
**node_deselected** **(** :ref:`Node<class_Node>` node **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个信号的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
当给定的 :ref:`GraphElement<class_GraphElement>` 节点被取消选择时发出。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -340,7 +340,7 @@ GraphEdit
|
||||
|
||||
**node_selected** **(** :ref:`Node<class_Node>` node **)**
|
||||
|
||||
当 GraphNode 被选择时发出。
|
||||
当给定的 :ref:`GraphElement<class_GraphElement>` 节点被选中时发出。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -352,7 +352,7 @@ GraphEdit
|
||||
|
||||
**paste_nodes_request** **(** **)**
|
||||
|
||||
当用户按下 :kbd:`Ctrl + V` 时发出。
|
||||
当该 **GraphEdit** 捕获 ``ui_paste`` 动作(默认为 :kbd:`Ctrl + V`\ )时触发。一般来说,该信号指示应被粘贴的先前复制的 :ref:`GraphElement<class_GraphElement>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -1010,7 +1010,7 @@ void **force_connection_drag_end** **(** **)**
|
||||
|
||||
:ref:`Dictionary[]<class_Dictionary>` **get_connection_list** **(** **)** |const|
|
||||
|
||||
返回一个包含连接列表的数组。一个连接包括一个结构,其形式为 ``{ from_port:0, from: "GraphNode name 0", to_port:1, to:"GraphNode name 1" }``\ 。
|
||||
返回包含连接列表的数组。连接由以下形式的结构组成:\ ``{ from_port: 0, from_node: "GraphNode name 0", to_port: 1, to_node: "GraphNode name 1" }``\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -275,7 +275,7 @@ OpenGL 纹理格式 ``RGBA`` 有四个部分,每个分量部分的位深度为
|
||||
|
||||
:ref:`Format<enum_Image_Format>` **FORMAT_RGB565** = ``7``
|
||||
|
||||
|
||||
OpenGL 纹理格式 ``RGB``\ ,具有三个组件。红色和蓝色的位深度为 5,绿色的位深度为 6。
|
||||
|
||||
.. _class_Image_constant_FORMAT_RF:
|
||||
|
||||
@@ -497,7 +497,7 @@ OpenGL 纹理格式 ``GL_RGBA16F``\ ,其中有四个分量,每个都是 16
|
||||
|
||||
:ref:`Format<enum_Image_Format>` **FORMAT_ETC2_RA_AS_RG** = ``33``
|
||||
|
||||
|
||||
`ETC2%E5%92%8CEAC]爱立信纹理压缩格式 2 <https://zh.wikipedia.org/zh-cn/%E7%88%B1%E7%AB%8B%E4%BF%A1%E7%BA%B9%E7%90%86%E5%8E%8B%E7%BC%A9#[3>`__\ (\ ``RGBA8`` 变体),能够压缩 RA 数据,将其解释为两个通道(红和绿)。另见 :ref:`FORMAT_ETC2_RGBA8<class_Image_constant_FORMAT_ETC2_RGBA8>`\ 。
|
||||
|
||||
.. _class_Image_constant_FORMAT_DXT5_RA_AS_RG:
|
||||
|
||||
@@ -505,7 +505,7 @@ OpenGL 纹理格式 ``GL_RGBA16F``\ ,其中有四个分量,每个都是 16
|
||||
|
||||
:ref:`Format<enum_Image_Format>` **FORMAT_DXT5_RA_AS_RG** = ``34``
|
||||
|
||||
|
||||
`S3TC <https://en.wikipedia.org/wiki/S3_Texture_Compression>`__ 纹理格式,也叫 Block Compression 3、BC3。能够压缩 RA 数据并将其解释为两个通道(红和绿)。另见 :ref:`FORMAT_DXT5<class_Image_constant_FORMAT_DXT5>`\ 。
|
||||
|
||||
.. _class_Image_constant_FORMAT_ASTC_4x4:
|
||||
|
||||
@@ -713,7 +713,7 @@ enum **UsedChannels**:
|
||||
|
||||
:ref:`UsedChannels<enum_Image_UsedChannels>` **USED_CHANNELS_L** = ``0``
|
||||
|
||||
|
||||
该图像仅使用一个通道表示亮度(灰度图)。
|
||||
|
||||
.. _class_Image_constant_USED_CHANNELS_LA:
|
||||
|
||||
@@ -721,7 +721,7 @@ enum **UsedChannels**:
|
||||
|
||||
:ref:`UsedChannels<enum_Image_UsedChannels>` **USED_CHANNELS_LA** = ``1``
|
||||
|
||||
|
||||
该图像使用两个通道,分别表示亮度和 Alpha。
|
||||
|
||||
.. _class_Image_constant_USED_CHANNELS_R:
|
||||
|
||||
@@ -729,7 +729,7 @@ enum **UsedChannels**:
|
||||
|
||||
:ref:`UsedChannels<enum_Image_UsedChannels>` **USED_CHANNELS_R** = ``2``
|
||||
|
||||
|
||||
该图像仅使用红色通道。
|
||||
|
||||
.. _class_Image_constant_USED_CHANNELS_RG:
|
||||
|
||||
@@ -737,7 +737,7 @@ enum **UsedChannels**:
|
||||
|
||||
:ref:`UsedChannels<enum_Image_UsedChannels>` **USED_CHANNELS_RG** = ``3``
|
||||
|
||||
|
||||
该图像使用红色和绿色两个通道。
|
||||
|
||||
.. _class_Image_constant_USED_CHANNELS_RGB:
|
||||
|
||||
@@ -745,7 +745,7 @@ enum **UsedChannels**:
|
||||
|
||||
:ref:`UsedChannels<enum_Image_UsedChannels>` **USED_CHANNELS_RGB** = ``4``
|
||||
|
||||
|
||||
该图像使用红、绿、蓝三个通道。
|
||||
|
||||
.. _class_Image_constant_USED_CHANNELS_RGBA:
|
||||
|
||||
@@ -753,7 +753,7 @@ enum **UsedChannels**:
|
||||
|
||||
:ref:`UsedChannels<enum_Image_UsedChannels>` **USED_CHANNELS_RGBA** = ``5``
|
||||
|
||||
|
||||
该图像使用红色、绿色、蓝色和 Alpha 四个通道。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -872,9 +872,7 @@ enum **ASTCFormat**:
|
||||
|
||||
void **adjust_bcs** **(** :ref:`float<class_float>` brightness, :ref:`float<class_float>` contrast, :ref:`float<class_float>` saturation **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个方法的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
使用 ``brightness`` 调整图像的亮度,使用 ``contrast`` 调整图像的对比度,使用 ``saturation`` 调整图像的饱和度。对压缩图像无效(见 :ref:`is_compressed<class_Image_method_is_compressed>`\ )。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -1090,9 +1088,7 @@ void **crop** **(** :ref:`int<class_int>` width, :ref:`int<class_int>` height **
|
||||
|
||||
:ref:`UsedChannels<enum_Image_UsedChannels>` **detect_used_channels** **(** :ref:`CompressSource<enum_Image_CompressSource>` source=0 **)** |const|
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个方法的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
返回某个 :ref:`UsedChannels<enum_Image_UsedChannels>` 常量,表示该图像所使用的颜色通道。如果为压缩图像,则必须使用 ``source`` 指定原始图像的属性。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -190,7 +190,7 @@ MIDI 信号可以通过 5 针 MIDI 连接器或 USB 发送,如果你的设备
|
||||
- void **set_instrument** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_instrument** **(** **)**
|
||||
|
||||
这个输入事件的乐器。这个值的范围是 0 到 127。乐器列表请参考维基百科的 General MIDI 文中的乐器列表,不过这个值是从 0 开始的,所以请把那张表中的数字都减一。标准钢琴的乐器号为 0。
|
||||
这个输入事件的乐器。这个值的范围是 0 到 127。乐器列表请参考维基百科的 `General MIDI <https://zh.wikipedia.org/zh-cn/General_MIDI#%E9%9F%B3%E8%89%B2%E8%BD%89%E6%8F%9B%E4%BA%8B%E4%BB%B6%EF%BC%88Program_change_events%EF%BC%89>`__ 文中的乐器列表,不过这个值是从 0 开始的,所以请把那张表中的数字都减一。标准钢琴的乐器号为 0。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -586,6 +586,8 @@ Label
|
||||
|
||||
\ **注意:**\ 如果使用启用了 :ref:`FontFile.multichannel_signed_distance_field<class_FontFile_property_multichannel_signed_distance_field>` 的字体,其 :ref:`FontFile.msdf_pixel_range<class_FontFile_property_msdf_pixel_range>` 必须至少设置为 :ref:`outline_size<class_Label_theme_constant_outline_size>` 的\ *两倍*\ ,轮廓渲染才能看起来正确。否则,轮廓可能会比预期的更早被切断。
|
||||
|
||||
\ **注意:**\ 不建议使用大于字体大小一半的值,因为这种情况下字体轮廓可能无法完全闭合。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
|
||||
@@ -19,17 +19,17 @@ LightmapGI
|
||||
描述
|
||||
----
|
||||
|
||||
**LightmapGI** 节点用于计算和存储烘焙的光照贴图。光照贴图用于提供高质量的间接照明,并且漏光很少。如果启用 :ref:`directional<class_LightmapGI_property_directional>`\ ,\ **LightmapGI** 还可以使用球谐函数,以提供粗略的反射。由于\ *光照探针*\ ,动态物体可以接收间接光照,可以通过将 :ref:`generate_probes_subdiv<class_LightmapGI_property_generate_probes_subdiv>` 设置为 :ref:`GENERATE_PROBES_DISABLED<class_LightmapGI_constant_GENERATE_PROBES_DISABLED>` 以外的值,来自动放置光照探针。也可以通过创建 :ref:`LightmapProbe<class_LightmapProbe>` 节点,来添加额外的光照贴图探针。缺点是光照贴图是完全静态的,不能在导出的项目中烘焙。与 :ref:`VoxelGI<class_VoxelGI>` 相比,烘焙 **LightmapGI** 节点也更慢。
|
||||
The **LightmapGI** node is used to compute and store baked lightmaps. Lightmaps are used to provide high-quality indirect lighting with very little light leaking. **LightmapGI** can also provide rough reflections using spherical harmonics if :ref:`directional<class_LightmapGI_property_directional>` is enabled. Dynamic objects can receive indirect lighting thanks to *light probes*, which can be automatically placed by setting :ref:`generate_probes_subdiv<class_LightmapGI_property_generate_probes_subdiv>` to a value other than :ref:`GENERATE_PROBES_DISABLED<class_LightmapGI_constant_GENERATE_PROBES_DISABLED>`. Additional lightmap probes can also be added by creating :ref:`LightmapProbe<class_LightmapProbe>` nodes. The downside is that lightmaps are fully static and cannot be baked in an exported project. Baking a **LightmapGI** node is also slower compared to :ref:`VoxelGI<class_VoxelGI>`.
|
||||
|
||||
\ **程序生成:**\ 光照贴图烘焙功能仅在编辑器中可用。这意味着 **LightmapGI** 不适合程序生成或用户构建的关卡。对于程序生成或用户构建的关卡,请改用 :ref:`VoxelGI<class_VoxelGI>` 或 SDFGI(请参阅 :ref:`Environment.sdfgi_enabled<class_Environment_property_sdfgi_enabled>`\ )。
|
||||
\ **Procedural generation:** Lightmap baking functionality is only available in the editor. This means **LightmapGI** is not suited to procedurally generated or user-built levels. For procedurally generated or user-built levels, use :ref:`VoxelGI<class_VoxelGI>` or SDFGI instead (see :ref:`Environment.sdfgi_enabled<class_Environment_property_sdfgi_enabled>`).
|
||||
|
||||
\ **性能:**\ **LightmapGI** 为全局照明提供最佳的运行时性能。它适用于包括集成显卡和移动设备在内的低端硬件。
|
||||
\ **Performance:** **LightmapGI** provides the best possible run-time performance for global illumination. It is suitable for low-end hardware including integrated graphics and mobile devices.
|
||||
|
||||
\ **注意:**\ 由于光照贴图的工作方式,大多数属性只有在光照贴图被再次烘焙后,才会产生可见效果。
|
||||
\ **Note:** Due to how lightmaps work, most properties only have a visible effect once lightmaps are baked again.
|
||||
|
||||
\ **注意:**\ 不支持在 :ref:`CSGShape3D<class_CSGShape3D>` 和 :ref:`PrimitiveMesh<class_PrimitiveMesh>` 上烘焙光照贴图,因为它们无法存储烘焙所需的 UV2 数据。
|
||||
\ **Note:** Lightmap baking on :ref:`CSGShape3D<class_CSGShape3D>`\ s and :ref:`PrimitiveMesh<class_PrimitiveMesh>`\ es is not supported, as these cannot store UV2 data required for baking.
|
||||
|
||||
\ **注意:**\ 如果没有安装自定义光照贴图,\ **LightmapGI** 只能在使用 Vulkan 后端(Forward+ 或 Mobile)时进行烘焙,而不能在使用 OpenGL 时烘焙。
|
||||
\ **Note:** If no custom lightmappers are installed, **LightmapGI** can only be baked when using the Vulkan backend (Forward+ or Mobile), not OpenGL. Additionally, **LightmapGI** rendering is not currently supported when using the OpenGL backend (Compatibility).
|
||||
|
||||
.. rst-class:: classref-introduction-group
|
||||
|
||||
|
||||
@@ -12,14 +12,14 @@ MenuBar
|
||||
|
||||
**继承:** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
|
||||
|
||||
水平菜单栏,会为每个 :ref:`PopupMenu<class_PopupMenu>` 子项创建一个 :ref:`MenuButton<class_MenuButton>`\ 。
|
||||
水平菜单栏,会为每个 :ref:`PopupMenu<class_PopupMenu>` 类型的子节点创建一个 :ref:`MenuButton<class_MenuButton>`\ 。
|
||||
|
||||
.. rst-class:: classref-introduction-group
|
||||
|
||||
描述
|
||||
----
|
||||
|
||||
水平菜单栏,会为每个 :ref:`PopupMenu<class_PopupMenu>` 子项创建一个 :ref:`MenuButton<class_MenuButton>`\ 。向这个节点添加 :ref:`PopupMenu<class_PopupMenu>` 就会创建新的项目。
|
||||
水平菜单栏,会为每个 :ref:`PopupMenu<class_PopupMenu>` 类型的子节点创建一个 :ref:`MenuButton<class_MenuButton>`\ 。通过添加 :ref:`PopupMenu<class_PopupMenu>` 节点来创建新的菜单选项。
|
||||
|
||||
.. rst-class:: classref-reftable-group
|
||||
|
||||
|
||||
@@ -685,7 +685,7 @@ void **agent_set_use_3d_avoidance** **(** :ref:`RID<class_RID>` agent, :ref:`boo
|
||||
|
||||
设置该代理在启用避障时使用 2D 避障还是 3D 避障。
|
||||
|
||||
如果为 ``true``\ ,则代理会为 XYZ 轴计算 3D 避障速度,例如在空中、水中、太空中进行的游戏。使用 3D 的代理只会躲避其他使用 3D 避障的代理。使用 3D 的代理只会响应基于半径的避障障碍物。使用 3D 的代理会忽略基于顶点的障碍物。使用 3D 的代理只会躲避其他使用 3D 的代理。
|
||||
如果为 ``true``\ ,则代理会为 XYZ 轴计算 3D 避障速度,例如在空中、水下、太空中进行的游戏。使用 3D 的代理只会躲避其他使用 3D 避障的代理。使用 3D 的代理只会响应基于半径的避障障碍物。使用 3D 的代理会忽略基于顶点的障碍物。使用 3D 的代理只会躲避其他使用 3D 的代理。
|
||||
|
||||
如果为 ``false``\ ,则代理会沿 XZ 轴计算 2D 避障速度,忽略 Y 轴。使用 2D 的代理只会躲避其他使用 2D 避障的代理。使用 2D 的代理会响应基于半径的避障障碍物。使用 2D 的代理会响应基于顶点的避障障碍物。使用 2D 的代理只会躲避其他使用 2D 的代理。在 2D 避障时,使用 2D 的代理会忽略它们位于当前位置之下或者位于当前位置与代理高度之和之上的其他使用 2D 的代理和障碍物。
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -655,7 +655,7 @@ void **_validate_property** **(** :ref:`Dictionary<class_Dictionary>` property *
|
||||
{
|
||||
if (property["name"].AsStringName() == PropertyName.Number && IsNumberEditable)
|
||||
{
|
||||
var usage = property["usage"].As>PropertyUsageFlags<() | PropertyUsageFlags.ReadOnly;
|
||||
var usage = property["usage"].As<PropertyUsageFlags>() | PropertyUsageFlags.ReadOnly;
|
||||
property["usage"] = (int)usage;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -471,6 +471,8 @@ void **clear** **(** **)**
|
||||
|
||||
返回新的 **PackedByteArray**\ ,其中的数据已解压。请将 ``buffer_size`` 设置为数据解压后的大小。请将压缩模式设置为 :ref:`CompressionMode<enum_FileAccess_CompressionMode>` 常量。
|
||||
|
||||
\ **注意:**\ 不保证解压缩可以处理未经 Godot 压缩的数据,例如,如果使用 deflate 压缩模式压缩的数据缺少校验和或标头。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
@@ -487,6 +489,8 @@ void **clear** **(** **)**
|
||||
|
||||
GZIP 的最大压缩率为 1032:1,这意味着较小的压缩后负载很有可能解压出非常巨大的输出。为了防止这种情况,你可以通过 ``max_output_size`` 提供允许这个函数分配的最大字节数。传入 -1 则不限制输出。传入正数且解压超过该字节数时,会返回错误。
|
||||
|
||||
\ **注意:**\ 不保证解压缩可以处理未经 Godot 压缩的数据,例如,如果使用 deflate 压缩模式压缩的数据缺少校验和或标头。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
@@ -836,7 +840,7 @@ void **remove_at** **(** :ref:`int<class_int>` index **)**
|
||||
|
||||
:ref:`int<class_int>` **resize** **(** :ref:`int<class_int>` new_size **)**
|
||||
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。调用一次 :ref:`resize<class_PackedByteArray_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -325,7 +325,7 @@ void **remove_at** **(** :ref:`int<class_int>` index **)**
|
||||
|
||||
:ref:`int<class_int>` **resize** **(** :ref:`int<class_int>` new_size **)**
|
||||
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。调用一次 :ref:`resize<class_PackedColorArray_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -329,7 +329,7 @@ void **remove_at** **(** :ref:`int<class_int>` index **)**
|
||||
|
||||
:ref:`int<class_int>` **resize** **(** :ref:`int<class_int>` new_size **)**
|
||||
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。调用一次 :ref:`resize<class_PackedFloat32Array_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -329,7 +329,7 @@ void **remove_at** **(** :ref:`int<class_int>` index **)**
|
||||
|
||||
:ref:`int<class_int>` **resize** **(** :ref:`int<class_int>` new_size **)**
|
||||
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。调用一次 :ref:`resize<class_PackedFloat64Array_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -321,7 +321,7 @@ void **remove_at** **(** :ref:`int<class_int>` index **)**
|
||||
|
||||
:ref:`int<class_int>` **resize** **(** :ref:`int<class_int>` new_size **)**
|
||||
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。调用一次 :ref:`resize<class_PackedInt32Array_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -321,7 +321,7 @@ void **remove_at** **(** :ref:`int<class_int>` index **)**
|
||||
|
||||
:ref:`int<class_int>` **resize** **(** :ref:`int<class_int>` new_size **)**
|
||||
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。调用一次 :ref:`resize<class_PackedInt64Array_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -334,7 +334,7 @@ void **remove_at** **(** :ref:`int<class_int>` index **)**
|
||||
|
||||
:ref:`int<class_int>` **resize** **(** :ref:`int<class_int>` new_size **)**
|
||||
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。调用一次 :ref:`resize<class_PackedStringArray_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -342,7 +342,7 @@ void **remove_at** **(** :ref:`int<class_int>` index **)**
|
||||
|
||||
:ref:`int<class_int>` **resize** **(** :ref:`int<class_int>` new_size **)**
|
||||
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。调用一次 :ref:`resize<class_PackedVector2Array_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -335,7 +335,7 @@ void **remove_at** **(** :ref:`int<class_int>` index **)**
|
||||
|
||||
:ref:`int<class_int>` **resize** **(** :ref:`int<class_int>` new_size **)**
|
||||
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。
|
||||
设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数组截断到新的大小。调用一次 :ref:`resize<class_PackedVector3Array_method_resize>` 并分配新值比逐个添加新元素要快。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -166,9 +166,7 @@ PrimitiveMesh
|
||||
|
||||
:ref:`Array<class_Array>` **_create_mesh_array** **(** **)** |virtual| |const|
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个方法的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
重写该方法以自定义应如何生成该基本网格。应该返回一个 :ref:`Array<class_Array>`\ ,其中每个元素都是该网格所需的另一个值数组(请参阅 :ref:`ArrayType<enum_Mesh_ArrayType>` 常量)。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -2240,7 +2240,7 @@ ProjectSettings
|
||||
|
||||
:ref:`int<class_int>` **audio/video/video_delay_compensation_ms** = ``0``
|
||||
|
||||
播放视频时设置为硬编码音频延迟。除非你知道自己在做什么,否则最好不要动它。
|
||||
播放视频时设置为硬编码音频延迟。除非你知道自己在做什么,否则最好保持不变。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -3834,9 +3834,13 @@ Zstandard 的默认压缩级别。影响压缩的场景和资源。较高的级
|
||||
|
||||
:ref:`bool<class_bool>` **display/window/size/resizable** = ``true``
|
||||
|
||||
允许窗口默认可调整大小。
|
||||
如果为 ``true``\ ,则默认允许窗口调整大小。
|
||||
|
||||
\ **注意:**\ 这个设置在 iOS 上将忽略。
|
||||
\ **注意:**\ 该属性仅在项目启动时读取。要更改窗口在运行时是否可调整大小,请改在根窗口上设置 :ref:`Window.unresizable<class_Window_property_unresizable>`\ ,这样可以使用 ``get_viewport().get_window()`` 检索根窗口。\ :ref:`Window.unresizable<class_Window_property_unresizable>` 采用与该设置相反的值。
|
||||
|
||||
\ **注意:**\ 某些窗口管理器可以被配置为忽略窗口的不可调整大小状态。不要依赖该设置来保证窗口\ *永远不会*\ 调整大小。
|
||||
|
||||
\ **注意:**\ 该设置在 iOS 上被忽略。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -9106,7 +9110,7 @@ Godot 使用一个消息队列来延迟一些函数调用。如果你的空间
|
||||
|
||||
:ref:`float<class_float>` **physics/common/physics_jitter_fix** = ``0.5``
|
||||
|
||||
控制物理周期与真实时间的同步程度。小于等于 0 时,周期是同步的。对时钟同步有要求的网络游戏建议使用此类值。较高的值会导致游戏内时钟和真实时钟的较大偏差,但可以平滑帧率抖动。大多数情况下,默认值 0.5 应该没问题;大于 2 的值可能导致游戏对丢帧作出明显延迟的反应,因此不推荐使用。
|
||||
控制物理周期与真实时间的同步程度。小于等于 0 时,周期是同步的。对时钟同步有要求的网络游戏建议使用此类值。较高的值会导致游戏内时钟和真实时钟的较大偏差,但可以平滑帧率抖动。大多数情况下,默认值 0.5 应该足够好了;大于 2 的值可能导致游戏对丢帧作出明显延迟的反应,因此不推荐使用。
|
||||
|
||||
\ **注意:**\ 为了获得最佳的结果,使用自定义物理插值解决方案时,应通过将 :ref:`physics/common/physics_jitter_fix<class_ProjectSettings_property_physics/common/physics_jitter_fix>` 设置为 ``0`` 来禁用物理抖动修复。
|
||||
|
||||
@@ -10382,9 +10386,7 @@ OIDN 将在可用时使用 GPU 加速。与使用计算着色器进行加速的
|
||||
|
||||
:ref:`int<class_int>` **rendering/limits/spatial_indexer/threaded_cull_minimum_instances** = ``1000``
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
在多线程上启用剔除计算时,场景中必须存在的最小实例数。如果场景的实例数少于该数量,则在单线程上完成剔除。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -346,9 +346,7 @@ Quaternion
|
||||
|
||||
:ref:`Quaternion<class_Quaternion>` **exp** **(** **)** |const|
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个方法的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
返回该四元数的指数。该结果的旋转轴是该四元数的归一化旋转轴,该结果的角度是该四元数的向量部分的长度。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -372,9 +370,9 @@ Quaternion
|
||||
|
||||
:ref:`float<class_float>` **get_angle** **(** **)** |const|
|
||||
|
||||
.. container:: contribute
|
||||
返回该四元数表示的旋转角度。
|
||||
|
||||
目前没有这个方法的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
\ **注意:**\ 该四元数必须被归一化。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -386,9 +384,7 @@ Quaternion
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **get_axis** **(** **)** |const|
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个方法的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
返回该四元数表示的旋转的旋转轴。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -484,9 +480,7 @@ Quaternion
|
||||
|
||||
:ref:`Quaternion<class_Quaternion>` **log** **(** **)** |const|
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个方法的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
返回该四元数的对数。该结果的向量部分是该四元数的旋转轴乘以其旋转角度,该结果的实部为零。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -345,7 +345,7 @@ void **force_raycast_update** **(** **)**
|
||||
|
||||
:ref:`Vector2<class_Vector2>` **get_collision_point** **(** **)** |const|
|
||||
|
||||
返回射线与最近的物体相交的碰撞点。
|
||||
返回射线与最近的物体相交的碰撞点。如果 :ref:`hit_from_inside<class_RayCast2D_property_hit_from_inside>` 为 ``true`` 并且射线从碰撞形状内部开始,则该函数将返回该射线的原点。
|
||||
|
||||
\ **注意:**\ 这个点是在\ **全局**\ 坐标系中。
|
||||
|
||||
|
||||
@@ -420,7 +420,7 @@ void **force_raycast_update** **(** **)**
|
||||
|
||||
:ref:`Vector3<class_Vector3>` **get_collision_point** **(** **)** |const|
|
||||
|
||||
返回射线与最近的物体相交的碰撞点。
|
||||
返回射线与最近的物体相交的碰撞点。如果 :ref:`hit_from_inside<class_RayCast3D_property_hit_from_inside>` 为 ``true`` 并且射线从碰撞形状内部开始,则该函数将返回该射线的原点。
|
||||
|
||||
\ **注意:**\ 这个点是在\ **全局**\ 坐标系中。
|
||||
|
||||
|
||||
@@ -93,9 +93,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_back_op_compare** **(** :ref:`CompareOperator<enum_RenderingDevice_CompareOperator>` value **)**
|
||||
- :ref:`CompareOperator<enum_RenderingDevice_CompareOperator>` **get_back_op_compare** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
用于比较前一个背面模板值和 :ref:`back_op_reference<class_RDPipelineDepthStencilState_property_back_op_reference>` 的方法。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -112,9 +110,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_back_op_compare_mask** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_back_op_compare_mask** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
选择将比较背面模板值中的哪些位。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -131,9 +127,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_back_op_depth_fail** **(** :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` value **)**
|
||||
- :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` **get_back_op_depth_fail** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
对通过模板测试但未通过深度测试的背面像素的模板缓冲区执行的操作。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -150,9 +144,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_back_op_fail** **(** :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` value **)**
|
||||
- :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` **get_back_op_fail** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
对模板缓冲区中未通过模板测试的背面像素执行的操作
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -169,9 +161,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_back_op_pass** **(** :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` value **)**
|
||||
- :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` **get_back_op_pass** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
对通过模板测试的背面像素的模板缓冲区执行的操作。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -188,9 +178,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_back_op_reference** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_back_op_reference** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
将与前一个背面模板值进行比较的值。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -207,9 +195,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_back_op_write_mask** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_back_op_write_mask** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
选择背面模板值中的哪些位将被更改。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -226,9 +212,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_depth_compare_operator** **(** :ref:`CompareOperator<enum_RenderingDevice_CompareOperator>` value **)**
|
||||
- :ref:`CompareOperator<enum_RenderingDevice_CompareOperator>` **get_depth_compare_operator** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
用于比较前一个和当前深度值的方法。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -245,9 +229,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_depth_range_max** **(** :ref:`float<class_float>` value **)**
|
||||
- :ref:`float<class_float>` **get_depth_range_max** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
:ref:`enable_depth_range<class_RDPipelineDepthStencilState_property_enable_depth_range>` 将返回 true 的最大深度。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -264,9 +246,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_depth_range_min** **(** :ref:`float<class_float>` value **)**
|
||||
- :ref:`float<class_float>` **get_depth_range_min** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
:ref:`enable_depth_range<class_RDPipelineDepthStencilState_property_enable_depth_range>` 将返回 true 的最小深度。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -283,9 +263,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_enable_depth_range** **(** :ref:`bool<class_bool>` value **)**
|
||||
- :ref:`bool<class_bool>` **get_enable_depth_range** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
如果为 ``true``\ ,则将测试每个深度值以查看它是否在 :ref:`depth_range_min<class_RDPipelineDepthStencilState_property_depth_range_min>` 和 :ref:`depth_range_max<class_RDPipelineDepthStencilState_property_depth_range_max>` 之间。如果超出这些值,则将其丢弃。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -302,7 +280,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_enable_depth_test** **(** :ref:`bool<class_bool>` value **)**
|
||||
- :ref:`bool<class_bool>` **get_enable_depth_test** **(** **)**
|
||||
|
||||
如果为 ``true``\ ,则会启用深度测试,能够让对象根据深度自动被其他对象遮挡。这样对象就能够被其他对象部分遮挡。如果为 ``false``\ ,则会按照绘制顺序显示(类似 Godot 的 2D 渲染器)。
|
||||
如果为 ``true``\ ,则会启用深度测试,能够让对象根据深度自动被其他对象遮挡。这样对象就能够被其他对象部分遮挡。如果为 ``false``\ ,则对象会按照绘制顺序显示(类似 Godot 的 2D 渲染器)。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -319,9 +297,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_enable_depth_write** **(** :ref:`bool<class_bool>` value **)**
|
||||
- :ref:`bool<class_bool>` **get_enable_depth_write** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
如果为 ``true``\ ,则每当深度测试返回 true 时写入深度缓冲区。仅当 enable_depth_test 也为 true 时才有效。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -338,9 +314,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_enable_stencil** **(** :ref:`bool<class_bool>` value **)**
|
||||
- :ref:`bool<class_bool>` **get_enable_stencil** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
如果为 ``true``\ ,则启用模板测试。正面三角形和背面三角形有单独的模板缓冲区。请参阅每个以“front_op”开头、和以“back_op”开头的属性。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -357,9 +331,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_front_op_compare** **(** :ref:`CompareOperator<enum_RenderingDevice_CompareOperator>` value **)**
|
||||
- :ref:`CompareOperator<enum_RenderingDevice_CompareOperator>` **get_front_op_compare** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
该方法用于比较前一个正面模板值和 :ref:`front_op_reference<class_RDPipelineDepthStencilState_property_front_op_reference>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -376,9 +348,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_front_op_compare_mask** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_front_op_compare_mask** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
选择正面模板值中的哪些位将被比较。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -395,9 +365,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_front_op_depth_fail** **(** :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` value **)**
|
||||
- :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` **get_front_op_depth_fail** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
对通过模板测试但未通过深度测试的正面像素的模板缓冲区执行的操作。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -414,9 +382,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_front_op_fail** **(** :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` value **)**
|
||||
- :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` **get_front_op_fail** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
对模板缓冲区中未通过模板测试的正面像素执行的操作。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -433,9 +399,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_front_op_pass** **(** :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` value **)**
|
||||
- :ref:`StencilOperation<enum_RenderingDevice_StencilOperation>` **get_front_op_pass** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
对通过模板测试的正面像素的模板缓冲区执行的操作。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -452,9 +416,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_front_op_reference** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_front_op_reference** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
将与前一个正面模板值进行比较的值。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -471,9 +433,7 @@ RDPipelineDepthStencilState
|
||||
- void **set_front_op_write_mask** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_front_op_write_mask** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
选择正面模板值中的哪些位将被更改。
|
||||
|
||||
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
|
||||
.. |const| replace:: :abbr:`const (本方法没有副作用。不会修改该实例的任何成员变量。)`
|
||||
|
||||
@@ -4602,7 +4602,7 @@ void **draw_command_insert_label** **(** :ref:`String<class_String>` name, :ref:
|
||||
::
|
||||
|
||||
var rd = RenderingDevice.new()
|
||||
var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]
|
||||
var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)])
|
||||
var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_READ, RenderingDevice.INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_DISCARD, clear_colors)
|
||||
|
||||
# 实心绘制。
|
||||
|
||||
@@ -267,6 +267,8 @@ RenderingServer
|
||||
+----------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| :ref:`RenderingDevice<class_RenderingDevice>` | :ref:`create_local_rendering_device<class_RenderingServer_method_create_local_rendering_device>` **(** **)** |const| |
|
||||
+----------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| :ref:`Rect2<class_Rect2>` | :ref:`debug_canvas_item_get_rect<class_RenderingServer_method_debug_canvas_item_get_rect>` **(** :ref:`RID<class_RID>` item **)** |
|
||||
+----------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| :ref:`RID<class_RID>` | :ref:`decal_create<class_RenderingServer_method_decal_create>` **(** **)** |
|
||||
+----------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| void | :ref:`decal_set_albedo_mix<class_RenderingServer_method_decal_set_albedo_mix>` **(** :ref:`RID<class_RID>` decal, :ref:`float<class_float>` albedo_mix **)** |
|
||||
@@ -2008,7 +2010,7 @@ enum **LightParam**:
|
||||
|
||||
:ref:`LightParam<enum_RenderingServer_LightParam>` **LIGHT_PARAM_SHADOW_PANCAKE_SIZE** = ``16``
|
||||
|
||||
设置定向阴影圆斑的大小。该圆斑偏移了阴影的相机视锥体的起点,为阴影提供更高的有效深度分辨率。但是,较大的圆斑大小会导致靠近视锥体边缘的大型物体的阴影出现伪影。减少该圆斑的大小会有所帮助。将大小设置为 ``0`` 会关闭该圆斑效果。
|
||||
设置定向阴影压平区域的大小。压平区域会偏移阴影相机视锥体的起点,为阴影提供更高的有效深度分辨率。但是,较大的压平区大小会导致靠近视锥体边缘的大型物体的阴影出现伪影。减少压平区大小会有所帮助。将大小设置为 ``0`` 会关闭该压平效果。
|
||||
|
||||
.. _class_RenderingServer_constant_LIGHT_PARAM_SHADOW_OPACITY:
|
||||
|
||||
@@ -6674,6 +6676,20 @@ void **canvas_texture_set_texture_repeat** **(** :ref:`RID<class_RID>` canvas_te
|
||||
|
||||
----
|
||||
|
||||
.. _class_RenderingServer_method_debug_canvas_item_get_rect:
|
||||
|
||||
.. rst-class:: classref-method
|
||||
|
||||
:ref:`Rect2<class_Rect2>` **debug_canvas_item_get_rect** **(** :ref:`RID<class_RID>` item **)**
|
||||
|
||||
返回渲染器计算出的局部空间中画布项的边界矩形。该边界在内部用于剔除。
|
||||
|
||||
\ **警告:**\ 该函数用于在编辑器中进行调试,并且将在导出的项目中跳过并返回零 :ref:`Rect2<class_Rect2>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
|
||||
.. _class_RenderingServer_method_decal_create:
|
||||
|
||||
.. rst-class:: classref-method
|
||||
@@ -7246,7 +7262,7 @@ void **fog_volume_set_size** **(** :ref:`RID<class_RID>` fog_volume, :ref:`Vecto
|
||||
|
||||
void **force_draw** **(** :ref:`bool<class_bool>` swap_buffers=true, :ref:`float<class_float>` frame_step=0.0 **)**
|
||||
|
||||
立即强制重绘所有的视口。
|
||||
强制立即重绘所有视口。必须从主线程调用。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ ResourceImporterOBJ
|
||||
|
||||
**继承:** :ref:`ResourceImporter<class_ResourceImporter>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
|
||||
|
||||
将 OBJ 3D 模型导入为独立 :ref:`Mesh<class_Mesh>` 或场景。
|
||||
将 OBJ 3D 模型导入为独立的 :ref:`Mesh<class_Mesh>` 或场景。
|
||||
|
||||
.. rst-class:: classref-introduction-group
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ ResourceImporterScene
|
||||
描述
|
||||
----
|
||||
|
||||
另请参见 :ref:`ResourceImporterOBJ<class_ResourceImporterOBJ>`\ ,它被用于可作为独立 :ref:`Mesh<class_Mesh>` 或场景导入的 OBJ 模型。
|
||||
另请参见 :ref:`ResourceImporterOBJ<class_ResourceImporterOBJ>`\ ,它被用于可作为独立的 :ref:`Mesh<class_Mesh>` 或场景导入的 OBJ 模型。
|
||||
|
||||
\ **高级导入设置** 对话框中提供了其他选项(例如将单个网格或材质提取到文件)。可以通过双击文件系统停靠面板中的 3D 场景或通过选择文件系统停靠面板中的 3D 场景,转至导入停靠面板并选择\ **高级**\ 来访问该对话框。
|
||||
|
||||
@@ -287,13 +287,13 @@ ResourceImporterScene
|
||||
|
||||
:ref:`bool<class_bool>` **skins/use_named_skins** = ``true``
|
||||
|
||||
如果勾选,则为动画使用命名的 :ref:`Skin<class_Skin>`\ 。\ :ref:`MeshInstance3D<class_MeshInstance3D>` 节点包含 3 个相关属性:指向 :ref:`Skeleton3D<class_Skeleton3D>` 节点的骨架 :ref:`NodePath<class_NodePath>`\ (通常为 ``..``\ )、网格、和皮肤:
|
||||
如果勾选,则为动画使用命名的 :ref:`Skin<class_Skin>`\ 。\ :ref:`MeshInstance3D<class_MeshInstance3D>` 节点包含 3 个相关属性:指向 :ref:`Skeleton3D<class_Skeleton3D>` 节点的骨架 :ref:`NodePath<class_NodePath>`\ (通常为 ``..``\ )、网格、蒙皮:
|
||||
|
||||
- :ref:`Skeleton3D<class_Skeleton3D>` 节点包含骨骼列表,其中包含名称、姿势和休息、名称和父骨骼。
|
||||
|
||||
- 网格是显示网格所需的所有原始顶点数据。就网格而言,它知道如何对顶点进行权重绘制,并使用通常从 3D 建模软件导入的某些内部编号。
|
||||
|
||||
- 皮肤包含将该网格绑定到该 Skeleton3D 上所必需的信息。对于 3D 建模软件选择的每一个内部骨骼 ID,它都包含两件事。首先是一个名为绑定姿势矩阵、逆绑定矩阵、或简称为 IBM 的矩阵。其次,该 :ref:`Skin<class_Skin>` 包含每个骨骼的名称(如果 :ref:`skins/use_named_skins<class_ResourceImporterScene_property_skins/use_named_skins>` 为 ``true``\ ),或者骨骼在 :ref:`Skeleton3D<class_Skeleton3D>` 列表中的索引(如果 :ref:`skins/use_named_skins<class_ResourceImporterScene_property_skins/use_named_skins>` 为 ``false``\ )。
|
||||
- 蒙皮包含将该网格绑定到该 Skeleton3D 上所必需的信息。对于 3D 建模软件选择的每一个内部骨骼 ID,它都包含两件事。首先是一个名为绑定姿势矩阵、逆绑定矩阵、或简称为 IBM 的矩阵。其次,该 :ref:`Skin<class_Skin>` 包含每个骨骼的名称(如果 :ref:`skins/use_named_skins<class_ResourceImporterScene_property_skins/use_named_skins>` 为 ``true``\ ),或者骨骼在 :ref:`Skeleton3D<class_Skeleton3D>` 列表中的索引(如果 :ref:`skins/use_named_skins<class_ResourceImporterScene_property_skins/use_named_skins>` 为 ``false``\ )。
|
||||
|
||||
总之,这些信息足以告诉 Godot 如何使用 :ref:`Skeleton3D<class_Skeleton3D>` 节点中的骨骼姿势来渲染每个 :ref:`MeshInstance3D<class_MeshInstance3D>` 的网格。请注意,每个 :ref:`MeshInstance3D<class_MeshInstance3D>` 可以共享绑定,这在从 Blender 导出的模型中很常见;或者每个 :ref:`MeshInstance3D<class_MeshInstance3D>` 可以使用单独的 :ref:`Skin<class_Skin>` 对象,这在从其他工具(例如 Maya)导出的模型中很常见。
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ RichTextEffect
|
||||
描述
|
||||
----
|
||||
|
||||
:ref:`RichTextLabel<class_RichTextLabel>` 的自定义效果。
|
||||
:ref:`RichTextLabel<class_RichTextLabel>` 的自定义效果,可以在 :ref:`RichTextLabel<class_RichTextLabel>` 检查器中加载或使用 :ref:`RichTextLabel.install_effect<class_RichTextLabel_method_install_effect>` 加载。
|
||||
|
||||
\ **注意:**\ 要使用 **RichTextEffect**\ ,必须在脚本中定义名为 ``bbcode`` 的成员变量作为 BBCode 标签。
|
||||
|
||||
|
||||
@@ -1305,7 +1305,32 @@ void **deselect** **(** **)**
|
||||
|
||||
void **install_effect** **(** :ref:`Variant<class_Variant>` effect **)**
|
||||
|
||||
安装自定义效果。\ ``effect`` 应该是有效的 :ref:`RichTextEffect<class_RichTextEffect>`\ 。
|
||||
安装自定义效果。这也可以在 RichTextLabel 检查器中使用 :ref:`custom_effects<class_RichTextLabel_property_custom_effects>` 属性来完成。\ ``effect`` 应该是一个有效的 :ref:`RichTextEffect<class_RichTextEffect>`\ 。
|
||||
|
||||
RichTextEffect 示例:
|
||||
|
||||
::
|
||||
|
||||
# effect.gd
|
||||
class_name MyCustomEffect
|
||||
extends RichTextEffect
|
||||
|
||||
var bbcode = "my_custom_effect"
|
||||
|
||||
# ...
|
||||
|
||||
通过脚本在 RichTextLabel 中注册上述效果:
|
||||
|
||||
::
|
||||
|
||||
# rich_text_label.gd
|
||||
extends RichTextLabel
|
||||
|
||||
func _ready():
|
||||
install_effect(MyCustomEffect.new())
|
||||
|
||||
# 或者,如果在扩展 RichTextEffect 的脚本中不使用“class_name”:
|
||||
install_effect(preload("res://effect.gd").new())
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -25,8 +25,6 @@ Skeleton3D
|
||||
|
||||
请注意,下文的“全局姿势”是指骨骼相对于骨架的整体变换,因此并不是骨骼的实际全局/世界变换。
|
||||
|
||||
要设置不同类型的反向运动学,请考虑使用 :ref:`SkeletonIK3D<class_SkeletonIK3D>`\ ,或者添加一个子节点并在 :ref:`Node._process<class_Node_private_method__process>` 中实现自定义 IK。
|
||||
|
||||
.. rst-class:: classref-introduction-group
|
||||
|
||||
教程
|
||||
@@ -157,9 +155,7 @@ Skeleton3D
|
||||
|
||||
**bone_enabled_changed** **(** :ref:`int<class_int>` bone_idx **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个信号的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
当使用 :ref:`set_bone_enabled<class_Skeleton3D_method_set_bone_enabled>` 切换 ``bone_idx`` 处的骨骼时发出。使用 :ref:`is_bone_enabled<class_Skeleton3D_method_is_bone_enabled>` 来检查新值。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -183,9 +179,7 @@ Skeleton3D
|
||||
|
||||
**pose_updated** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个信号的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
收到 :ref:`NOTIFICATION_UPDATE_SKELETON<class_Skeleton3D_constant_NOTIFICATION_UPDATE_SKELETON>` 后更新姿势时触发。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -197,9 +191,7 @@ Skeleton3D
|
||||
|
||||
**show_rest_only_changed** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个信号的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
当 :ref:`show_rest_only<class_Skeleton3D_property_show_rest_only>` 的值改变时触发。
|
||||
|
||||
.. rst-class:: classref-section-separator
|
||||
|
||||
@@ -216,7 +208,9 @@ Skeleton3D
|
||||
|
||||
**NOTIFICATION_UPDATE_SKELETON** = ``50``
|
||||
|
||||
当该骨架的姿势需要更新时收到的通知。
|
||||
|
||||
该通知是在相关 :ref:`pose_updated<class_Skeleton3D_signal_pose_updated>` 信号\ *之前*\ 接收的。
|
||||
|
||||
.. rst-class:: classref-section-separator
|
||||
|
||||
@@ -276,9 +270,7 @@ Skeleton3D
|
||||
- void **set_show_rest_only** **(** :ref:`bool<class_bool>` value **)**
|
||||
- :ref:`bool<class_bool>` **is_show_rest_only** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
如果为 ``true``\ ,则无论其值如何,强制骨骼处于默认放松姿势。在编辑器中,这也会阻止骨骼被编辑。
|
||||
|
||||
.. rst-class:: classref-section-separator
|
||||
|
||||
|
||||
@@ -185,9 +185,7 @@ enum **DisableMode**:
|
||||
- void **set_damping_coefficient** **(** :ref:`float<class_float>` value **)**
|
||||
- :ref:`float<class_float>` **get_damping_coefficient** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
物体的阻尼系数。当施加力时,较高的值会更明显地减慢物体的速度。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -221,9 +219,9 @@ enum **DisableMode**:
|
||||
- void **set_drag_coefficient** **(** :ref:`float<class_float>` value **)**
|
||||
- :ref:`float<class_float>` **get_drag_coefficient** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
物体的阻力系数。较高的值会增加该物体的空气阻力。
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
\ **注意:**\ Godot 的默认物理实现当前未使用该值。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -274,9 +272,7 @@ enum **DisableMode**:
|
||||
- void **set_pressure_coefficient** **(** :ref:`float<class_float>` value **)**
|
||||
- :ref:`float<class_float>` **get_pressure_coefficient** **(** **)**
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个属性的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
该软体的压力系数。模拟物体内部的压力积聚。较高的值会增加该效果的强度。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -392,9 +388,7 @@ void **add_collision_exception_with** **(** :ref:`Node<class_Node>` body **)**
|
||||
|
||||
:ref:`RID<class_RID>` **get_physics_rid** **(** **)** |const|
|
||||
|
||||
.. container:: contribute
|
||||
|
||||
目前没有这个方法的描述。请帮我们\ :ref:`贡献一个 <doc_updating_the_class_reference>`\ !
|
||||
返回 :ref:`PhysicsServer3D<class_PhysicsServer3D>` 用于该实体的内部 :ref:`RID<class_RID>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ Sprite2D
|
||||
- void **set_frame** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_frame** **(** **)**
|
||||
|
||||
当前显示的精灵表中的帧。\ :ref:`vframes<class_Sprite2D_property_vframes>` 或 :ref:`hframes<class_Sprite2D_property_hframes>` 必须大于 1。
|
||||
当前显示的精灵表中的帧。\ :ref:`hframes<class_Sprite2D_property_hframes>` 和 :ref:`vframes<class_Sprite2D_property_vframes>` 必须大于 1。\ :ref:`hframes<class_Sprite2D_property_hframes>` 或 :ref:`vframes<class_Sprite2D_property_vframes>` 发生变化时会自动调整该属性,让它在视觉上保持指向同一帧(同一行、同一列)。 如果无法保持,则会重置为 ``0``\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -210,7 +210,7 @@ Sprite2D
|
||||
- void **set_hframes** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_hframes** **(** **)**
|
||||
|
||||
精灵表中的列数。
|
||||
精灵表中的列数。该属性发生变化时会对 :ref:`frame<class_Sprite2D_property_frame>` 进行调整,在视觉上维持相同的帧(同一行、同一列)。如果无法维持,则会将 :ref:`frame<class_Sprite2D_property_frame>` 重置为 ``0``\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -312,7 +312,7 @@ Sprite2D
|
||||
- void **set_vframes** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_vframes** **(** **)**
|
||||
|
||||
精灵表中的行数。
|
||||
精灵表中的行数。该属性发生变化时会对 :ref:`frame<class_Sprite2D_property_frame>` 进行调整,在视觉上维持相同的帧(同一行、同一列)。如果无法维持,则会将 :ref:`frame<class_Sprite2D_property_frame>` 重置为 ``0``\ 。
|
||||
|
||||
.. rst-class:: classref-section-separator
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ Sprite3D
|
||||
- void **set_frame** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_frame** **(** **)**
|
||||
|
||||
当前显示的精灵表中的帧。\ :ref:`vframes<class_Sprite3D_property_vframes>` 或 :ref:`hframes<class_Sprite3D_property_hframes>` 必须大于 1。
|
||||
当前显示的精灵表中的帧。\ :ref:`hframes<class_Sprite3D_property_hframes>` 和 :ref:`vframes<class_Sprite3D_property_vframes>` 必须大于 1。\ :ref:`hframes<class_Sprite3D_property_hframes>` 或 :ref:`vframes<class_Sprite3D_property_vframes>` 发生变化时会自动调整该属性,让它在视觉上保持指向同一帧(同一行、同一列)。 如果无法保持,则会重置为 ``0``\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -128,7 +128,7 @@ Sprite3D
|
||||
- void **set_hframes** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_hframes** **(** **)**
|
||||
|
||||
精灵表中的列数。
|
||||
精灵表中的列数。该属性发生变化时会对 :ref:`frame<class_Sprite3D_property_frame>` 进行调整,在视觉上维持相同的帧(同一行、同一列)。如果无法维持,则会将 :ref:`frame<class_Sprite3D_property_frame>` 重置为 ``0``\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -196,7 +196,7 @@ Sprite3D
|
||||
- void **set_vframes** **(** :ref:`int<class_int>` value **)**
|
||||
- :ref:`int<class_int>` **get_vframes** **(** **)**
|
||||
|
||||
精灵表中的行数。
|
||||
精灵表中的行数。该属性发生变化时会对 :ref:`frame<class_Sprite3D_property_frame>` 进行调整,在视觉上维持相同的帧(同一行、同一列)。如果无法维持,则会将 :ref:`frame<class_Sprite3D_property_frame>` 重置为 ``0``\ 。
|
||||
|
||||
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
|
||||
.. |const| replace:: :abbr:`const (本方法没有副作用。不会修改该实例的任何成员变量。)`
|
||||
|
||||
@@ -458,16 +458,16 @@ String
|
||||
|
||||
"move_local_x".capitalize() # 返回 "Move Local X"
|
||||
"sceneFile_path".capitalize() # 返回 "Scene File Path"
|
||||
"2D, FPS, PNG".capitalize() # 返回 "2d, Fps, Png"
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
"move_local_x".Capitalize(); // 返回 "Move Local X"
|
||||
"sceneFile_path".Capitalize(); // 返回 "Scene File Path"
|
||||
"2D, FPS, PNG".Capitalize(); // 返回 "2d, Fps, Png"
|
||||
|
||||
|
||||
|
||||
\ **注意:**\ 这个方法与检查器面板中属性的默认外观不一样,不会像你期望的那样将首字母缩写大写(\ ``"2D"``\ 、\ ``"FPS"``\ 、\ ``"PNG"`` 等)。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
@@ -1833,7 +1833,7 @@ String
|
||||
|
||||
:ref:`String<class_String>` **to_lower** **(** **)** |const|
|
||||
|
||||
返回将该字符串转换为小写的结果。
|
||||
返回将该字符串转换为小写 ``lowercase`` 的结果。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -1859,6 +1859,25 @@ String
|
||||
|
||||
返回将该字符串转换为蛇形命名 ``snake_case`` 的结果。
|
||||
|
||||
\ **注意:**\ 如果数字之后存在的是\ *单个*\ 字符,则不会进行拆分,这是为了保证某些单词的连贯(例如“2D”)。
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
"Node2D".to_snake_case() # 返回 "node_2d"
|
||||
"2nd place".to_snake_case() # 返回 "2_nd_place"
|
||||
"Texture3DAssetFolder".to_snake_case() # 返回 "texture_3d_asset_folder"
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
"Node2D".ToSnakeCase(); // 返回 "node_2d"
|
||||
"2nd place".ToSnakeCase(); // 返回 "2_nd_place"
|
||||
"Texture3DAssetFolder".ToSnakeCase(); // 返回 "texture_3d_asset_folder"
|
||||
|
||||
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
@@ -1869,7 +1888,7 @@ String
|
||||
|
||||
:ref:`String<class_String>` **to_upper** **(** **)** |const|
|
||||
|
||||
返回将该字符串转换为大写的结果。
|
||||
返回将该字符串转换为大写 ``UPPERCASE`` 的结果。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -25,8 +25,14 @@ StringName
|
||||
|
||||
\ :ref:`String<class_String>` 的所有方法都在这个类中可用。它们会将 **StringName** 转换为字符串,返回的也是字符串。这样做效率非常低,应该只在需要字符串时使用。
|
||||
|
||||
\ **注意:**\ 在 C# 中,需要显式转换为 ``System.String`` 才能使用本页列出的方法。使用 ``ToString()`` 方法将 **StringName** 转换为字符串,然后使用 ``System.String`` 或 ``StringExtensions`` 中的等效方法。
|
||||
|
||||
\ **注意:**\ 转换为布尔值时,空的 **StringName**\ (\ ``StringName("")``\ )为 ``false``\ ,其他 **StringName** 均为 ``true``\ 。不能使用 ``not`` 运算符。请改用 :ref:`is_empty<class_StringName_method_is_empty>` 来检查空的 **StringName**\ 。
|
||||
|
||||
.. note::
|
||||
|
||||
通过 C# 使用这个 API 时有显著的不同。详见 :ref:`doc_c_sharp_differences`\ 。
|
||||
|
||||
.. rst-class:: classref-reftable-group
|
||||
|
||||
构造函数
|
||||
@@ -425,16 +431,16 @@ StringName
|
||||
|
||||
"move_local_x".capitalize() # 返回 "Move Local X"
|
||||
"sceneFile_path".capitalize() # 返回 "Scene File Path"
|
||||
"2D, FPS, PNG".capitalize() # 返回 "2d, Fps, Png"
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
"move_local_x".Capitalize(); // 返回 "Move Local X"
|
||||
"sceneFile_path".Capitalize(); // 返回 "Scene File Path"
|
||||
"2D, FPS, PNG".Capitalize(); // 返回 "2d, Fps, Png"
|
||||
|
||||
|
||||
|
||||
\ **注意:**\ 这个方法与检查器面板中属性的默认外观不一样,不会像你期望的那样将首字母缩写大写(\ ``"2D"``\ 、\ ``"FPS"``\ 、\ ``"PNG"`` 等)。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
@@ -1672,7 +1678,7 @@ StringName
|
||||
|
||||
:ref:`String<class_String>` **to_lower** **(** **)** |const|
|
||||
|
||||
返回将该字符串转换为小写的结果。
|
||||
返回将该字符串转换为小写 ``lowercase`` 的结果。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -1698,6 +1704,25 @@ StringName
|
||||
|
||||
返回将该字符串转换为蛇形命名 ``snake_case`` 的结果。
|
||||
|
||||
\ **注意:**\ 如果数字之后存在的是\ *单个*\ 字符,则不会进行拆分,这是为了保证某些单词的连贯(例如“2D”)。
|
||||
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. code-tab:: gdscript
|
||||
|
||||
"Node2D".to_snake_case() # 返回 "node_2d"
|
||||
"2nd place".to_snake_case() # 返回 "2_nd_place"
|
||||
"Texture3DAssetFolder".to_snake_case() # 返回 "texture_3d_asset_folder"
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
"Node2D".ToSnakeCase(); // 返回 "node_2d"
|
||||
"2nd place".ToSnakeCase(); // 返回 "2_nd_place"
|
||||
"Texture3DAssetFolder".ToSnakeCase(); // 返回 "texture_3d_asset_folder"
|
||||
|
||||
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
----
|
||||
@@ -1708,7 +1733,7 @@ StringName
|
||||
|
||||
:ref:`String<class_String>` **to_upper** **(** **)** |const|
|
||||
|
||||
返回将该字符串转换为大写的结果。
|
||||
返回将该字符串转换为大写 ``UPPERCASE`` 的结果。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -401,7 +401,7 @@ void **deindex** **(** **)**
|
||||
|
||||
为给定的 ``nd_threshold`` 生成 LOD,使用线性单位(四次误差的平方根),最多使用 ``target_index_count`` 个索引。
|
||||
|
||||
\ *已弃用。*\ 内部不再使用,忽略后能够保持法线和 UV。请考虑改用 :ref:`ImporterMesh.generate_lods<class_ImporterMesh_method_generate_lods>`\ 。
|
||||
\ *已弃用。*\ 内部不再使用,并且无法保留法线或 UV。请考虑改用 :ref:`ImporterMesh.generate_lods<class_ImporterMesh_method_generate_lods>`\ 。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -538,7 +538,7 @@ enum **FontLCDSubpixelLayout**:
|
||||
|
||||
:ref:`FontLCDSubpixelLayout<enum_TextServer_FontLCDSubpixelLayout>` **FONT_LCD_SUBPIXEL_LAYOUT_MAX** = ``5``
|
||||
|
||||
|
||||
代表 :ref:`FontLCDSubpixelLayout<enum_TextServer_FontLCDSubpixelLayout>` 枚举的大小。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -948,7 +948,7 @@ flags **TextOverrunFlag**:
|
||||
|
||||
:ref:`TextOverrunFlag<enum_TextServer_TextOverrunFlag>` **OVERRUN_JUSTIFICATION_AWARE** = ``16``
|
||||
|
||||
|
||||
在尝试修剪文本之前考虑文本是否对齐(请参阅 :ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\ )。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
@@ -1376,7 +1376,7 @@ enum **SpacingType**:
|
||||
|
||||
:ref:`SpacingType<enum_TextServer_SpacingType>` **SPACING_MAX** = ``4``
|
||||
|
||||
|
||||
代表 :ref:`SpacingType<enum_TextServer_SpacingType>` 枚举的大小。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
@@ -236,7 +236,9 @@ void **draw_rect_region** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Rect2<c
|
||||
|
||||
:ref:`Image<class_Image>` **get_image** **(** **)** |const|
|
||||
|
||||
返回一个 :ref:`Image<class_Image>`\ ,是这个 **Texture2D** 中数据的副本(每次都会新建一个 :ref:`Image<class_Image>`\ )。可以直接访问并操作 :ref:`Image<class_Image>`\ 。
|
||||
返回一个 :ref:`Image<class_Image>`\ ,该对象是这个 **Texture2D** 中数据的副本(每次都会新建一个 :ref:`Image<class_Image>`\ )。可以直接访问并操作 :ref:`Image<class_Image>`\ 。
|
||||
|
||||
\ **注意:**\ 如果该 **Texture2D** 无效,则会返回 ``null``\ 。
|
||||
|
||||
\ **注意:**\ 这个函数会从 GPU 获取纹理数据,过度使用可能会引起性能问题。
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ Transform2D
|
||||
|
||||
用于 2D 线性变换的 2×3 矩阵(2 行 3 列),可以表示平移、旋转、缩放等变换,由三个 :ref:`Vector2<class_Vector2>` 值组成:\ :ref:`x<class_Transform2D_property_x>`\ 、\ :ref:`y<class_Transform2D_property_y>`\ 、\ :ref:`origin<class_Transform2D_property_origin>`\ 。
|
||||
|
||||
更多信息请阅读文档文章《矩阵与变换》。
|
||||
通用介绍见教程\ :doc:`《矩阵与变换》 <../tutorials/math/matrices_and_transforms>`\ 。
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ Transform3D
|
||||
|
||||
用于 3D 线性变换的 3×4 矩阵(3 行 4 列),可以表示平移、旋转、缩放等变换,由 :ref:`basis<class_Transform3D_property_basis>`\ (前三列)和 :ref:`origin<class_Transform3D_property_origin>` 的 :ref:`Vector3<class_Vector3>`\ (最后一列)组成。
|
||||
|
||||
更多信息请阅读文档文章《矩阵与变换》。
|
||||
通用介绍见教程\ :doc:`《矩阵与变换》 <../tutorials/math/matrices_and_transforms>`\ 。
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Tween
|
||||
|
||||
Tween 主要用于需要将一个数值属性插值到一系列值的动画。\ *tween* 这个名字来自 *in-betweening*\ ,这是一种动画技术,可以在其中指定 *关键帧*\ ,然后计算机会插入出现在它们之间的帧。使用 **Tween** 制作动画被称为补间动画。
|
||||
|
||||
\ **Tween** 比 :ref:`AnimationPlayer<class_AnimationPlayer>` 更适合事先不知道最终值的动画。例如,插入动态选择的相机缩放值最好使用 **Tween** 完成;很难使用 :ref:`AnimationPlayer<class_AnimationPlayer>` 节点做同样的事情。Tween 也比 :ref:`AnimationPlayer<class_AnimationPlayer>` 更轻量级,因此它们非常适合简单的动画,或不需要编辑器提供的视觉调整的通用任务。对于通常由代码完成的某些逻辑,它们可以以即用即弃的方式使用。例如,可以使用带延迟的循环 :ref:`CallbackTweener<class_CallbackTweener>` 定期射击。
|
||||
\ **Tween** 比 :ref:`AnimationPlayer<class_AnimationPlayer>` 更适合事先不知道最终值的动画。例如,插入动态选择的相机缩放值最好使用 **Tween** 完成;很难使用 :ref:`AnimationPlayer<class_AnimationPlayer>` 节点做同样的事情。Tween 也比 :ref:`AnimationPlayer<class_AnimationPlayer>` 更轻量级,因此它们非常适合简单的动画,或不需要编辑器提供的视觉调整的通用任务。对于通常由代码完成的某些逻辑,它们可以以“即用即弃”的方式使用。例如,可以使用带延迟的循环 :ref:`CallbackTweener<class_CallbackTweener>` 定期射击。
|
||||
|
||||
可以使用 :ref:`SceneTree.create_tween<class_SceneTree_method_create_tween>` 或 :ref:`Node.create_tween<class_Node_method_create_tween>` 创建 **Tween**\ 。手动创建的 **Tween**\ (即使用 ``Tween.new()``\ )无效,不能用于对值进行补间。
|
||||
|
||||
|
||||
@@ -333,7 +333,7 @@ VehicleWheel3D
|
||||
- void **set_roll_influence** **(** :ref:`float<class_float>` value **)**
|
||||
- :ref:`float<class_float>` **get_roll_influence** **(** **)**
|
||||
|
||||
这个值会影响车辆的滚动。如果所有车轮都设置为 1.0,车辆将容易翻车,而 0.0 的值将阻止车身侧倾。
|
||||
该值会影响车辆的滚动。如果将所有车轮都设置为 1.0,车辆将抵抗车身侧倾,而值为 0.0 则容易翻车。
|
||||
|
||||
.. rst-class:: classref-section-separator
|
||||
|
||||
|
||||
@@ -2369,7 +2369,7 @@ void **set_unparent_when_invisible** **(** :ref:`bool<class_bool>` unparent **)*
|
||||
|
||||
如果 ``unparent`` 为 ``true``\ ,则窗口会在隐藏时自动解除与父节点的关系。
|
||||
|
||||
\ **注意:**\ 请确保存在对该节点的引用,否则该节点会变为孤儿节点。没有父节点时,你还需要手动调用 :ref:`Node.queue_free<class_Node_method_queue_free>` 来释放该窗口。
|
||||
\ **注意:**\ 请确保存在对该节点的引用,否则该节点会变为孤立节点。没有父节点时,你还需要手动调用 :ref:`Node.queue_free<class_Node_method_queue_free>` 来释放该窗口。
|
||||
|
||||
.. rst-class:: classref-item-separator
|
||||
|
||||
|
||||
Reference in New Issue
Block a user