我想在一个立方体上播放3个动画,当检查一个条件时,应该播放第一个动画,然后当检查第二个条件时,则要播放第二个动画,最后一个要播放相同的东西。
因此,我创建了3个动画并将它们作为旧版,然后将动画组件附加到多维数据集,然后将动画添加到其中。我在下面的脚本中遇到的问题是,第一个动画可以正常工作,而其余两个动画却不能。我该怎么做才能解决此问题?
Animation CubeRot;
bool Rot = false;
// Use this for initialization
void Start () {
CubeRot = gameObject.GetComponent<Animation>();
}
// Update is called once per frame
void Update () {
if (FindObjectOfType<HoseController>().Rotated1 == true)
{
if (!Rot)
{
CubeRot.Play("Rot1");
Rot = true;
}
}
if (FindObjectOfType<HoseController>().Rotated2 == true)
{
if (!Rot)
{
CubeRot.Play("Rot2");
Rot = true;
}
}
}
答案 0 :(得分:1)
是因为您在第一次更新中设置了Rot = true;
。然后第二次更新要求Rot
变量为false
,但是从第一次更新起它仍然适用吗?
答案 1 :(得分:1)
第一: 如果两种情况都要求Rot均为false。
第二: 如果Rotated1为true,则第一部分将循环(因为您处于Update中),并且由于未将其设置为false,因此它将继续循环。 您甚至可以避免同时使用Rotated1和Rot
此外,您还应避免使用旧版动画组件。在新的Animator组件中执行相同的行为应该很容易
最后避免每次都使用FindObjectOfType