【发布时间】:2019-05-20 23:21:45
【问题描述】:
我想在一个立方体上播放3个动画,当检查条件时,应该播放第一个动画,然后在检查第二个条件时,第二个动画和最后一个动画。
所以我创建了 3 个动画并将它们作为遗留,然后我将动画组件附加到立方体,并将动画添加到它。我在下面的脚本中遇到的问题是第一个动画效果很好,但剩下的 2 个没有。我应该怎么做才能解决这个问题?
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;
}
}
}
【问题讨论】:
-
一般情况下:不要不要重复使用
FindObjectOfType。而是将引用存储一次并像private HoseController hoseController; private void Start() { hoseController = FindObjectOfType<HoseController>(); }一样重用它,然后在任何地方只使用例如if(hoseController.Rotated1){ ... } -
@derHugo 感谢您的提示!