使用Animator的Trigger参数
步骤 1:打开 Animator 窗口
确保你的 Sprite 对象已添加 Animator 组件。
在 Unity 编辑器顶部菜单栏,选择 Window > Animation > Animator,打开 Animator 窗口。
步骤 2:创建 Trigger 参数
在 Animator 窗口 的左侧面板中,找到 Parameters(参数) 标签页。
点击 + 按钮,选择 Trigger,并命名为
AttackTrigger
(或其他自定义名称)。
步骤 3:创建动画状态(Idle 和 Attack)
添加 Idle 动画:
如果尚未创建,将
Idle
动画剪辑拖入 Animator 窗口,默认会生成一个初始状态(橙色节点)。
添加 Attack 动画:
将
Attack
动画剪辑拖入 Animator 窗口,生成一个新的状态(灰色节点)。
步骤 4:设置过渡条件
从 Idle 到 Attack 的过渡:
右键点击
Idle
状态,选择 Make Transition,然后点击Attack
状态,创建一条过渡箭头。点击该过渡箭头,在 Inspector 窗口中设置:
Conditions(条件):选择
AttackTrigger
参数(Trigger 类型)。Has Exit Time:取消勾选(确保动画立即切换,不等待当前动画结束)。
Transition Duration(过渡时间):设为
0
(瞬间切换)。
从 Attack 回到 Idle 的过渡:
右键点击
Attack
状态,选择 Make Transition,连接到Idle
状态。点击此过渡箭头,设置:
Conditions:无需参数,直接依赖 Exit Time。
Has Exit Time:勾选,并设置为
1
(等待 Attack 动画播放完毕)。Transition Duration:根据需要调整(如
0.1
)。
步骤 5:配置 Attack 动画剪辑
在 Project 窗口中选择
Attack
动画剪辑。在 Inspector 窗口中取消勾选 Loop Time,确保动画只播放一次。
步骤 6:脚本触发 Trigger
在控制脚本中调用 SetTrigger
方法触发动画:
public class PlayerController : MonoBehaviour {
private Animator animator;
void Start() {
animator = GetComponent<Animator>();
}
void Update() {
if (Input.GetKeyDown(KeyCode.Space)) {
animator.SetTrigger("AttackTrigger"); // 触发动画
}
}
}