版本: Unity 6 (6000.0)
语言英语
  • C#

Animator.Play

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void Play(string stateName, int layer = -1, float normalizedTime = float.NegativeInfinity);

声明

public void Play(int stateNameHash, int layer = -1, float normalizedTime = float.NegativeInfinity);

参数

stateName 状态名称。
stateNameHash 状态哈希名称。如果 stateNameHash 为 0,则更改当前状态时间。
layer 层级索引。如果 layer 为 -1,则播放具有给定状态名称或哈希值的第一个状态。
normalizedTime 0 到 1 之间的时间偏移量。

描述

播放状态。

当您指定状态名称或用于生成哈希的字符串时,它应包含父层级的名称。例如,如果您在 Base Layer 中有一个 Bounce 状态,则名称为 Base Layer.BouncenormalizedTime 参数在 0 和 1 之间变化。如果此参数保持为零,则 Play 将按预期运行。可以给出不同的起始点。例如,可以将 normalizedTime 设置为 0.5,这意味着动画从中间开始。如果从一个状态到另一个状态的过渡,它可能会或可能不会混合。如果过渡从 0.75 开始,它将与另一个状态混合。如果没有设置过渡,则 Play 将继续到 1.0 且没有任何更改。


以下示例脚本为立方体设置动画。

此立方体有两个 Animator 状态,称为 RestBounceRest 状态中播放了一个空动画。当按下空格键时,立方体切换到 Bounce 状态。这会导致立方体上下跳动两次。然后,立方体返回到 Rest 状态。由于 Bounce 是从 Animator.Play 脚本中选择的,因此不需要过渡。但是,从 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 through anim.Play("Base Layer.Bounce", 0, 0.25f); } } } }