我正在try 播放我的动画师的动画5次.也就是说,在每次动画结束后,它都必须重新播放一次.我该怎么做?

public Animator anim;

void Start ()
       {
             StartCoroutine(PlayAnimInterval(5));
       }

      private IEnumerator PlayAnimInterval(int n)
      {
          while (n > 0)
          {
              anim.Play("wave", -1, 0F);
              --n;
              //yield return new WaitForSeconds(anim.GetCurrentAnimatorStateInfo(0).length); //Returns 1 which is wrong
          }
      }

推荐答案

IEnumerator中的for循环来解决这个问题.还要确保正确输入图层号.此处,波状态在零层重复5次.

private IEnumerator PlayAnimInterval(int n)
{
    for (int i = 0; i < n; i++)
    {
        anim.Play("wave", 0, 1);
        yield return new WaitForSeconds(anim.GetCurrentAnimatorStateInfo(0).length);
    }
}

如何检测动画层?

animator层是一个array.通过在"层"部分中添加每个层,也会添加其索引.您可以在下面找到其代码.

enter image description here


使用行为重复状态信息

在这种方法中,您可以解决任何状态下的重复问题.只需创建一个像下面这样的行为,并添加重复次数.此方法也可以独立于图层工作.

enter image description here

enter image description here

public class Repeat : StateMachineBehaviour
{
    public int repeatTime;
    public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (repeatTime <= 0) return;
        
        repeatTime--;
        animator.Play(stateInfo.fullPathHash);
    }
} 

Csharp相关问答推荐

Unity中的刚体2D运动

SortedSet.Remove()不会删除SortedSet.Min返回的元素

在此系统上已禁用获取正在运行的脚本.&在ASP.NET Core Web API中

.NET SDK包中的官方C#编译器在哪里?

当索引和外键是不同的数据类型时,如何设置导航属性?

正在try 从Blazor中的API读取JSON

BFF到具有AAD/Entra ID B2C的内部API(.NET/ASP.NET核心/标识.Web)

WinUI 3中DoubleCollection崩溃应用程序类型的依赖属性

使用动态键从请求体反序列化JSON

C#如何获取字符串中引号之间的文本?

使用C#代码和SQL SERVER中的相同证书签名会产生不同的结果

通过mini kube中的远程调试Pod与从emoteProcessPickerScript中解析错误输出的代码错误进行比较

ASP.NET Core 7空字符串

OPC UA标签收集(OPCFoundation NETStandard库,代码更正)

创建一个zip文件并将其返回到客户端进行下载

如何在创建类列表之前草签该类

是否通过导航属性删除实体?

依赖注入C#异常

获取WMS ImageLayer并将其分层到OpenStreetMap层-WPF

如何使用MediaInfo库在C#/.NET中提取封面艺术?