AnimationNodeStateMachinePlayback
继承: Resource < RefCounted < Object
为 AnimationNodeStateMachine 提供播放控制。
描述
允许控制使用 AnimationNodeStateMachine 创建的 AnimationTree 状态机。使用 $AnimationTree.get("parameters/playback") 检索。
var state_machine = $AnimationTree.get("parameters/playback")
state_machine.travel("some_state")
var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback").As<AnimationNodeStateMachinePlayback>();
stateMachine.Travel("some_state");
教程
属性
resource_local_to_scene |
|
方法
get_current_length() const |
|
get_current_node() const |
|
get_current_play_position() const |
|
get_fading_from_length() const |
|
get_fading_from_node() const |
|
get_fading_from_play_position() const |
|
get_fading_length() const |
|
get_fading_position() const |
|
get_travel_path() const |
|
is_playing() const |
|
void |
next() |
void |
start(node: StringName, reset: bool = true) |
void |
stop() |
void |
travel(to_node: StringName, reset_on_teleport: bool = true) |
信号
state_finished(state: StringName) 🔗
state 播放完毕时发出。如果 state 是设置为编组模式的状态机,则其信号会以其名称作为前缀传递。
如果存在交叉淡入淡出,则它将在 get_fading_from_node() 动画的影响不再存在时触发。
state_started(state: StringName) 🔗
当 state 开始播放时发出。如果 state 是一个设置为编组模式的状态机,则其信号将以其名称作为前缀传递。
方法说明
float get_current_length() const 🔗
返回当前状态长度。
注意:有可能任何 AnimationRootNode 既可以是节点也可以是动画。这意味着在单个状态中可以有多个动画。哪个动画长度会优先,取决于其内部连接的节点。此外,如果过渡未重置,则将返回该点的剩余长度。
StringName get_current_node() const 🔗
返回当前的动画播放状态。
注意:使用交叉叠化时,当前状态会在交叉叠化开始后理解变为下一个状态。
float get_current_play_position() const 🔗
返回当前动画状态内的播放位置。
float get_fading_from_length() const 🔗
返回当前焦点项目的索引。如果没有焦点,则返回 0。
StringName get_fading_from_node() const 🔗
返回当前淡入淡出动画的开始状态。
float get_fading_from_play_position() const 🔗
返回当前焦点项目的索引。如果没有焦点,则返回 0。
float get_fading_length() const 🔗
返回当前焦点项目的索引。如果没有焦点,则返回 0。
float get_fading_position() const 🔗
返回当前焦点项目的索引。如果没有焦点,则返回 0。
Array[StringName] get_travel_path() const 🔗
返回 A* 算法内部计算的当前行进路径。
如果正在播放动画,返回 true。
void next() 🔗
如果通过行进或自动前进有下一条路径,则立即从当前状态过渡到下一个状态。
void start(node: StringName, reset: bool = true) 🔗
开始播放给定的动画。
如果 reset 为 true,则动画从头开始播放。
void stop() 🔗
停止当前播放的动画。
void travel(to_node: StringName, reset_on_teleport: bool = true) 🔗
按照最短的路径从当前状态过渡到另一个状态。
如果路径没有连接到当前状态,则动画将在状态传送后播放。
如果 reset_on_teleport 为 true,当行进导致传送时,该动画将从头开始播放。