В общем, создай триггер рядом с сундуком (Ну или что там у тебя), т.е создай коллизию, и укажи в ней 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("Название триггера закрытия");
}
}