@maks_lali

Как можно сделать переключение анимаций?

Как можно сделать когда вхожу в триггер, то включается анимация открытия и останавливается, а когда выхожу - закрытия. А когда я например выхожу из триггера на половине открытия, то она дойдет до конца и запуститься анимация закрытия.
  • Вопрос задан
  • 212 просмотров
Пригласить эксперта
Ответы на вопрос 1
@RasFace
В общем, создай триггер рядом с сундуком (Ну или что там у тебя), т.е создай коллизию, и укажи в ней Is Trigger. Еще нужно создать аниматор для сундука, добавить в него 2 анимации (закрытия и открытия), убрать у них флажок "LoopTime", и к ним провести транзицию из AnyState. (В entry можешь провести анимацию закрытия, но тогда будет баг, в самом начале сундук закрывается, так что можешь сделать дополнительную анимацию простаивания, но пригодится она только в начале) Дальше в аниматоре создать триггер открытия, и закрытия, и укажи их в транзициях. В скрипте сундука сделай функцию OnTriggerEnter/OnTriggerEnter2D и OnTriggerExit/OnTriggerExit2D (В зависимости какой у тебя проект), в функции enter вызывай триггер открытия, в exit триггер закрытия Также нужно указать аниматор в самом скрипте.
Код для наглядности:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Box : MonoBehaviour
{
    //Переменная аниматора
    private Animator anim;

    public void Start()
    {
        //Указываем аниматор
        anim = GetComponent<Animator>();
    }

    public void OnTriggerEnter2D(Collider2D collision)
    {
        //Вызваем триггер открытия
        anim.SetTrigger("Название триггера открывания");
    }
    public void OnTriggerExit2D(Collider2D collision)
    {
        //Вызываем триггер закрытия
        anim.SetTrigger("Название триггера закрытия");
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы