C# 在unity中,调用包含在另一个协同程序中播放动画的协同程序使动画仅播放0.1秒

C# 在unity中,调用包含在另一个协同程序中播放动画的协同程序使动画仅播放0.1秒,c#,unity3d,C#,Unity3d,我有一个项目,通过蓝牙读取Arduino控制器的输入,并根据它读取的输入播放特定动画,输入可以是1或2或3,也可以是其中2或3个的混合,总共7个输入 每次读取都在一个“if”语句中,然后是“else if”语句,用于检查下一个组合,我正在读取一个播放动画的协同程序,这里的问题是它只播放0.1秒,然后被剪切 我试图添加一个条件,等待动画结束,然后再次阅读,但这不起作用,我将添加一个小的exmaple IEnumerator ManageConnection (BluetoothDevice de

我有一个项目,通过蓝牙读取Arduino控制器的输入,并根据它读取的输入播放特定动画,输入可以是1或2或3,也可以是其中2或3个的混合,总共7个输入

每次读取都在一个“if”语句中,然后是“else if”语句,用于检查下一个组合,我正在读取一个播放动画的协同程序,这里的问题是它只播放0.1秒,然后被剪切

我试图添加一个条件,等待动画结束,然后再次阅读,但这不起作用,我将添加一个小的exmaple

IEnumerator  ManageConnection (BluetoothDevice device)
{   
    while (device.IsReading) 
    {
        byte [] msg = device.read ();

        if (msg != null) 
        {
            string content = System.Text.ASCIIEncoding.ASCII.GetString (msg);

            string [] lines = content.Split(new char[]{'\n','\r'});

            //Add those lines to the scrollText
            if (!animationPlaying)
            {
                if (lines.Contains("123"))
                {
                    StartCoroutine(Animating(0));
                    audsrc.PlayOneShot(audioList[5]);
                    StartCoroutine(SlowDown(0.1f));
                    //StartCoroutine(ActiveEffect(5));

                    coinsCount += 1;
                }
                else if (lines.Contains("12"))
                {
                    yeahCount += 1;
                    StartCoroutine(Animating(5));
                    audsrc.PlayOneShot(audioList[4]);
                    StartCoroutine(SlowDown(0.1f)); 
                }   
            }
        }
这是一个用于制作动画的协同程序:

public IEnumerator Animating(int i)
{
    animationPlaying = true;
    animator.Play(animationNames[i]);

    yield return new WaitForSeconds(1);

    animationPlaying = false;
}           
我只想让动画播放到结束,而不是仅仅0.1秒


谢谢。

您可以让动画在Animator组件上播放到最后,而不是使用协同程序进行硬编码


您可以让动画在Animator组件上一直播放到结束,而不是使用协同程序进行硬编码


问题是,因为这将被称为每一帧,如果我这样做,没有等待时间,下一个被称为动画的动画将剪切上一个,想象一下,你用一个按钮,按下它很多次,使用协同程序,等待1秒钟,无论你点击按钮的速度有多快,它只会在1秒后读取下一个。因为这将被称为每一帧,如果我这样做,没有等待时间,下一个被称为动画将剪切上一个,想象你用一个按钮这样做,然后你按下它很多次,用协程并等待1秒,不管你点击按钮的速度有多快,它将仅在1秒后读取下一个。