Не могу воспроизвести 3 анимации на одном объекте Unity3D - PullRequest
1 голос
/ 20 мая 2019

Я хочу воспроизвести 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;
            }
        }
    }

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Во-первых: Требуется, чтобы Rot был ложным в обоих случаях, если

Во-вторых: Если Rotated1 имеет значение true, первая часть будет зациклена (поскольку вы находитесь в обновлении), и поскольку вы не установите его в false, если он будет продолжать зацикливаться. Вы даже можете избежать использования как Rotated1, так и Rot

Также вам следует избегать устаревшего компонента анимации. То же самое должно быть легко сделать в новом компоненте Animator

Наконец, избегайте использования FindObjectOfType каждый раз

1 голос
/ 20 мая 2019

Это потому, что вы устанавливаете Rot = true; в первом обновлении. Затем для второго обновления требуется, чтобы переменная Rot была false, но она все еще имеет значение с 1-го обновления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...