stateName | 状态名称。 |
stateNameHash | 状态哈希名称。如果 stateNameHash 为 0,则会更改当前状态时间。 |
layer | 层的索引。如果 layer 为 -1,则播放第一个具有给定状态名称或哈希的状态。 |
normalizedTime | 介于零到一之间的时间偏移。 |
播放一个状态。
指定状态名称(即用于生成哈希的字符串)时,它应包含父层的名称。例如,如果 Base Layer
中有 Bounce
状态,则名称为 Base Layer.Bounce
。
normalizedTime
参数的值介于 0 和 1 之间。如果此参数保留为零,则 Play 将按预期运行。可以提供不同的起点。例如,可以将 normalizedTime
设置为 0.5,这意味着动画从中途开始。如果过渡是从一个状态切换到另一个状态,可以混合也可以不混合。如果过渡从 0.75 开始,它将与另一个状态混合。如果未设置过渡,则 Play 将保持为 1.0 而不进行任何更改。
\
以下示例脚本将生成立方体的动画。
此立方体有两个动画器状态,分别名为 Rest
和 Bounce
。在 Rest
中将播放空的动画。按下空格键后,立方体将切换到 Bounce
状态。这会使立方体上下跳动两次。然后立方体返回到 Rest
状态。因为从 Animator.Play 脚本中选择了 Bounce
,所以不需要过渡。但从 Bounce
返回到 Rest
却要有过渡。此处勾选了 Has Exit Time
以确保 Bounce
持续一秒钟。将此脚本附加到需要生成动画的 GameObject。
using UnityEngine;
// Press the space key in Play Mode to switch to the Bounce state.
public class Move : MonoBehaviour { private Animator anim;
void Start() { anim = GetComponent<Animator>(); }
void Update() { if (Input.GetKeyDown(KeyCode.Space)) { if (anim != null) { // play Bounce but start at a quarter of the way though anim.Play("Base Layer.Bounce", 0, 0.25f); } } } }