unity 获取animator正在播放的动画名字
时间: 2024-11-03 19:17:00 浏览: 37
在Unity中,要获取Animator当前正在播放的动画名称,你可以通过Animator组件提供的API来实现。首先,确保你有一个已经附加了Animator的GameObject实例。下面是步骤:
1. 获取Animator组件:` Animator animator = GetComponent<Animator>();`
2. 调用`GetCurrentAnimatorStateInfo()`方法来获取当前状态的信息:
```csharp
AnimatorStateInfo currentState = animator.GetCurrentAnimatorStateInfo(0);
```
这里,0通常表示默认的第一个动画条目,如果你有多个条目,可以传入相应的索引。
3. 从`AnimatorStateInfo`对象中获取动画名称:
```csharp
string animationName = currentState.name;
```
完整代码示例如下:
```csharp
string currentAnimation = "";
if (GetComponent<Animator>() != null)
{
Animator animator = GetComponent<Animator>();
AnimatorStateInfo currentState = animator.GetCurrentAnimatorStateInfo(0);
if (currentState.IsName("YourAnimationName")) // 用实际的动画名称替换"YourAnimationName"
{
currentAnimation = currentState.name;
}
}
Debug.Log("当前正在播放的动画: " + currentAnimation);
```
阅读全文