Files
godot-docs-l10n/classes/zh_CN/class_animationnodestatemachinetransition.rst

310 lines
13 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/4.2/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/4.2/doc/classes/AnimationNodeStateMachineTransition.xml.
.. _class_AnimationNodeStateMachineTransition:
AnimationNodeStateMachineTransition
===================================
**继承:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
:ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>` 中连接两个 :ref:`AnimationRootNode<class_AnimationRootNode>` 的过渡。
.. rst-class:: classref-introduction-group
描述
----
使用 :ref:`AnimationNodeStateMachinePlayback.travel<class_AnimationNodeStateMachinePlayback_method_travel>` 时生成的路径,仅限于通过 **AnimationNodeStateMachineTransition** 连接的节点。
可以详细设置过渡的时机和条件。
.. rst-class:: classref-introduction-group
教程
----
- :doc:`使用 AnimationTree <../tutorials/animation/animation_tree>`
.. rst-class:: classref-reftable-group
属性
----
.. table::
:widths: auto
+--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+----------+
| :ref:`StringName<class_StringName>` | :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` | ``&""`` |
+--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+----------+
| :ref:`String<class_String>` | :ref:`advance_expression<class_AnimationNodeStateMachineTransition_property_advance_expression>` | ``""`` |
+--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+----------+
| :ref:`AdvanceMode<enum_AnimationNodeStateMachineTransition_AdvanceMode>` | :ref:`advance_mode<class_AnimationNodeStateMachineTransition_property_advance_mode>` | ``1`` |
+--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+----------+
| :ref:`int<class_int>` | :ref:`priority<class_AnimationNodeStateMachineTransition_property_priority>` | ``1`` |
+--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+----------+
| :ref:`bool<class_bool>` | :ref:`reset<class_AnimationNodeStateMachineTransition_property_reset>` | ``true`` |
+--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+----------+
| :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` | :ref:`switch_mode<class_AnimationNodeStateMachineTransition_property_switch_mode>` | ``0`` |
+--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+----------+
| :ref:`Curve<class_Curve>` | :ref:`xfade_curve<class_AnimationNodeStateMachineTransition_property_xfade_curve>` | |
+--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+----------+
| :ref:`float<class_float>` | :ref:`xfade_time<class_AnimationNodeStateMachineTransition_property_xfade_time>` | ``0.0`` |
+--------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+----------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
信号
----
.. _class_AnimationNodeStateMachineTransition_signal_advance_condition_changed:
.. rst-class:: classref-signal
**advance_condition_changed** **(** **)**
变更 :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` 时发出。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
枚举
----
.. _enum_AnimationNodeStateMachineTransition_SwitchMode:
.. rst-class:: classref-enumeration
enum **SwitchMode**:
.. _class_AnimationNodeStateMachineTransition_constant_SWITCH_MODE_IMMEDIATE:
.. rst-class:: classref-enumeration-constant
:ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **SWITCH_MODE_IMMEDIATE** = ``0``
立即切换到下一个状态。当前状态将结束,并混合到新状态的开始。
.. _class_AnimationNodeStateMachineTransition_constant_SWITCH_MODE_SYNC:
.. rst-class:: classref-enumeration-constant
:ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **SWITCH_MODE_SYNC** = ``1``
立即切换到下一个状态,但会将新的状态定位到旧状态的播放位置。
.. _class_AnimationNodeStateMachineTransition_constant_SWITCH_MODE_AT_END:
.. rst-class:: classref-enumeration-constant
:ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **SWITCH_MODE_AT_END** = ``2``
等待当前状态播放结束,然后切换到下一个状态动画的开头。
.. rst-class:: classref-item-separator
----
.. _enum_AnimationNodeStateMachineTransition_AdvanceMode:
.. rst-class:: classref-enumeration
enum **AdvanceMode**:
.. _class_AnimationNodeStateMachineTransition_constant_ADVANCE_MODE_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`AdvanceMode<enum_AnimationNodeStateMachineTransition_AdvanceMode>` **ADVANCE_MODE_DISABLED** = ``0``
不要使用该过渡。
.. _class_AnimationNodeStateMachineTransition_constant_ADVANCE_MODE_ENABLED:
.. rst-class:: classref-enumeration-constant
:ref:`AdvanceMode<enum_AnimationNodeStateMachineTransition_AdvanceMode>` **ADVANCE_MODE_ENABLED** = ``1``
仅在 :ref:`AnimationNodeStateMachinePlayback.travel<class_AnimationNodeStateMachinePlayback_method_travel>` 时使用该过渡。
.. _class_AnimationNodeStateMachineTransition_constant_ADVANCE_MODE_AUTO:
.. rst-class:: classref-enumeration-constant
:ref:`AdvanceMode<enum_AnimationNodeStateMachineTransition_AdvanceMode>` **ADVANCE_MODE_AUTO** = ``2``
如果 :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>`:ref:`advance_expression<class_AnimationNodeStateMachineTransition_property_advance_expression>` 检查为真,则自动使用该过渡(如果已分配)。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
属性说明
--------
.. _class_AnimationNodeStateMachineTransition_property_advance_condition:
.. rst-class:: classref-property
:ref:`StringName<class_StringName>` **advance_condition** = ``&""``
.. rst-class:: classref-property-setget
- void **set_advance_condition** **(** :ref:`StringName<class_StringName>` value **)**
- :ref:`StringName<class_StringName>` **get_advance_condition** **(** **)**
该条件被设置时打开自动前进。提供的名称将成为 :ref:`AnimationTree<class_AnimationTree>` 上的布尔参数,可以通过代码进行控制(请参阅 `使用 AnimationTree <../tutorials/animation/animation_tree.html#controlling-from-code>`__\ )。例如,如果 :ref:`AnimationTree.tree_root<class_AnimationTree_property_tree_root>` 是一个 :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>` 并且 :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` 被设置为 ``"idle"``\
.. tabs::
.. code-tab:: gdscript
$animation_tree.set("parameters/conditions/idle", is_on_floor and (linear_velocity.x == 0))
.. code-tab:: csharp
GetNode<AnimationTree>("animation_tree").Set("parameters/conditions/idle", IsOnFloor && (LinearVelocity.X == 0));
.. rst-class:: classref-item-separator
----
.. _class_AnimationNodeStateMachineTransition_property_advance_expression:
.. rst-class:: classref-property
:ref:`String<class_String>` **advance_expression** = ``""``
.. rst-class:: classref-property-setget
- void **set_advance_expression** **(** :ref:`String<class_String>` value **)**
- :ref:`String<class_String>` **get_advance_expression** **(** **)**
将表达式用作状态机过渡的条件。可以为状态之间的切换创建复杂的动画推进条件,并通过直接与脚本代码交互为创建复杂的状态机提供更大的灵活性。
.. rst-class:: classref-item-separator
----
.. _class_AnimationNodeStateMachineTransition_property_advance_mode:
.. rst-class:: classref-property
:ref:`AdvanceMode<enum_AnimationNodeStateMachineTransition_AdvanceMode>` **advance_mode** = ``1``
.. rst-class:: classref-property-setget
- void **set_advance_mode** **(** :ref:`AdvanceMode<enum_AnimationNodeStateMachineTransition_AdvanceMode>` value **)**
- :ref:`AdvanceMode<enum_AnimationNodeStateMachineTransition_AdvanceMode>` **get_advance_mode** **(** **)**
决定在使用 :ref:`AnimationNodeStateMachinePlayback.travel<class_AnimationNodeStateMachinePlayback_method_travel>` 时该过渡是否应该被禁用/启用,或者如果 :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>`:ref:`advance_expression<class_AnimationNodeStateMachineTransition_property_advance_expression>` 检查为真则自动行进(如果已分配)。
.. rst-class:: classref-item-separator
----
.. _class_AnimationNodeStateMachineTransition_property_priority:
.. rst-class:: classref-property
:ref:`int<class_int>` **priority** = ``1``
.. rst-class:: classref-property-setget
- void **set_priority** **(** :ref:`int<class_int>` value **)**
- :ref:`int<class_int>` **get_priority** **(** **)**
当在树中通过 :ref:`AnimationNodeStateMachinePlayback.travel<class_AnimationNodeStateMachinePlayback_method_travel>` 或将 :ref:`advance_mode<class_AnimationNodeStateMachineTransition_property_advance_mode>` 设置为 :ref:`ADVANCE_MODE_AUTO<class_AnimationNodeStateMachineTransition_constant_ADVANCE_MODE_AUTO>` 行进时,倾向于优先级较低的过渡。
.. rst-class:: classref-item-separator
----
.. _class_AnimationNodeStateMachineTransition_property_reset:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **reset** = ``true``
.. rst-class:: classref-property-setget
- void **set_reset** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **is_reset** **(** **)**
如果为 ``true``\ ,切换时目标动画从头开始播放。
.. rst-class:: classref-item-separator
----
.. _class_AnimationNodeStateMachineTransition_property_switch_mode:
.. rst-class:: classref-property
:ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **switch_mode** = ``0``
.. rst-class:: classref-property-setget
- void **set_switch_mode** **(** :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` value **)**
- :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **get_switch_mode** **(** **)**
过渡类型。
.. rst-class:: classref-item-separator
----
.. _class_AnimationNodeStateMachineTransition_property_xfade_curve:
.. rst-class:: classref-property
:ref:`Curve<class_Curve>` **xfade_curve**
.. rst-class:: classref-property-setget
- void **set_xfade_curve** **(** :ref:`Curve<class_Curve>` value **)**
- :ref:`Curve<class_Curve>` **get_xfade_curve** **(** **)**
缓动曲线可以更好地控制此状态和下一个状态之间的交叉淡入淡出。
.. rst-class:: classref-item-separator
----
.. _class_AnimationNodeStateMachineTransition_property_xfade_time:
.. rst-class:: classref-property
:ref:`float<class_float>` **xfade_time** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_xfade_time** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_xfade_time** **(** **)**
这个状态和下一个状态之间的交叉渐变时间。
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
.. |const| replace:: :abbr:`const (本方法没有副作用。不会修改该实例的任何成员变量。)`
.. |vararg| replace:: :abbr:`vararg (本方法除了在此处描述的参数外,还能够继续接受任意数量的参数。)`
.. |constructor| replace:: :abbr:`constructor (本方法用于构造某个类型。)`
.. |static| replace:: :abbr:`static (调用本方法无需实例,所以可以直接使用类名调用。)`
.. |operator| replace:: :abbr:`operator (本方法描述的是使用本类型作为左操作数的有效操作符。)`
.. |bitfield| replace:: :abbr:`BitField (这个值是由下列标志构成的位掩码整数。)`