Мы взяли модель персонажа из наших материалов.
Открытие двери
Создадим кнопку. Для этого создаем Cube. Настраиваем его размеры. Далее в окне проекта ПКМ Create - Materials создаем материал для кнопки. Перемещаем материал на кнопку.

Далее настроим коллайдер на кнопке. Ставим галку isTrigger. Это нужно для того, чтобы персонаж мог проходить сквозь границы коллайдера кнопки.

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

Создаем анимацию открытия двери. Выбираем в иерархии дверь. Нажимаем на вкладку Window - Animation - Animation.
Нажимаем кнопку записи, первая точка — исходная позиция двери (закрыта), она будет в нуле. Вторая — конечная позиция двери (открыта) — примерно на 40 секундах.

Снимаем кнопку записи и закрываем окно анимации.
Нам нужно, чтобы анимация проигрывалась один раз, для этого в окне проекта выбираем анимацию.

В инспекторе снимаем галку напротив Loop Time.

Если мы сейчас запустим Юнити, анимация сразу запустится, а нам нужно только при нажатии на кнопку. Нам нужно настроить анимацию, для этого переходим во вкладку Animator. У нас уже есть автоматически настроенная связь, но она нам не подходит.

Удаляем блок door.

Создаем пустой блок.

Перемещаем из окна проекта нашу анимацию. Связь мы прокладывать в аниматоре не будем, сделаем это у скрипта.

Создаем скрипт, называем его Button. Это скрипт для персонажа, который будет перемещать стену, то есть включать анимацию.

Объявляем аниматор. Создаем метод OnTriggerEnter, в котором будем делать проверку: если зашел в коллайдер наш персонаж, то включаем анимацию. Сохраняем и переходим в Юнити.

Перемещаем скрипт на персонажа и в поле аnim добавляем стену.

Выбираем кнопку. Создаем тег but1. Назначаем его кнопке. Запускаем и проверяем.

Исчезающие платформы
Создаем куб, делаем из него платформу. Ставим рядом с Plane.

Метод OntriggerEnter не подойдет, так как, если мы поставим галку isTrigger, персонаж провалится. Будем использовать метод OnCollisionEnter. Создаем скрипт. В нем пишем метод OnCollisionEnter. В нем прописываем Destroy, который будет уничтожать объект, в скобках указываем, какой объект он будет уничтожать и время, через которое он это выполнит.

Перемещаем скрипт на платформу и проверяем.
На этом все. Если вы хотите получше изучить Юнити, научиться делать разнообразную анимацию и разрабатывать крутые игры с помощью скриптов на C#, приходите на продвинутый курс в школу Pixel.