【发布时间】:2018-12-20 17:42:01
【问题描述】:
我试图得到它,以便在按下对撞机时运行一个动画,并且只有当它完成时,另一次按下对撞机才会激活下一个动画。
我一直在尝试关注这个:Wait for an animation to finish in unity3d
但目前我遇到了一个错误,提示“没有给出与 'reduced_grill.WaitForAnimation(Animation)' 的所需形式参数 'animation' 相对应的参数”。
我对此还是很陌生。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class reduced_grill : MonoBehaviour {
public GameObject grill_standard;
public Animator minimal_grill;
public GameObject reduced_grill_obj;
public GameObject grill_price;
private IEnumerator WaitForAnimation(Animation animation)
{
do
{
yield return null;
} while (animation.isPlaying);
}
IEnumerator OnMouseOver()
{
minimal_grill.GetComponent<Animation>();
yield return WaitForAnimation();
if (Input.GetMouseButtonUp(0) && minimal_grill.GetCurrentAnimatorStateInfo(0).IsName("none"))
{
grill_standard.SetActive(true);
reduced_grill_obj.SetActive(true);
minimal_grill.enabled = true;
minimal_grill.Play("minimal_grill_red", -1, 0f);
CallLater.DoAfter(5, x =>
{
grill_price.SetActive(true);
});
}
if (Input.GetMouseButtonUp(0) && minimal_grill.GetCurrentAnimatorStateInfo(0).IsName("minimal_grill_red"))
{
minimal_grill.enabled = true;
minimal_grill.Play("minimal_grill_exit", -1, 0f);
grill_price.SetActive(false);
CallLater.DoAfter(8, x =>
{
reduced_grill_obj.SetActive(false);
});
}
if (Input.GetMouseButtonUp(0) && minimal_grill.GetCurrentAnimatorStateInfo(0).IsName("minimal_grill_exit"))
{
grill_standard.SetActive(true);
reduced_grill_obj.SetActive(true);
minimal_grill.enabled = true;
minimal_grill.Play("minimal_grill_red", -1, 0f);
CallLater.DoAfter(5, x =>
{
grill_price.SetActive(true);
});
}
}
}
编辑
我正在尝试按照以下建议添加动画事件,但由于某种原因,我无法选择任何动画以输入到字段框中。
【问题讨论】: