- Плавное открытие панели при нажатии кнопки
- Плавное закрытие панели при нажатии кнопки
На сцене редактора Unity в табе Hierarchy добавляем экранный UI\Canvas (с настройкой компонента Canvas\Render Mode=Screen Space — Overlay)
при добавлении Canvas автоматически добавляется игровой объект EventSystem по управлению нажатием
(не рекомендуется удалять)
Добавляем UI\Panel и дочерним в панель добавляем UI\Button (у дочернего элемента UI\Text кнопки настроим текст, допустим «Menu»)


Открыть таб Animation у Panel и создать анимацию и контроллер.

Открываем инспектор анимации через сохранённый файл

Открываем инспектор файла контроллера
(создаётся при сохранении файла анимации там же)
Открываем таб Animation через кнопку open в инспекторе.
В разделе Parameters создаём параметр типа bool под именем open, который отвечает за состояние панели (открыт или закрыт)

(в каждом переходе отключаем Has Exit Time=false и добавляем в Contions параметр Open) и настраиваем узлы Open и Close (Speed, Motion — привязываем файл анимации)


Создаём файл Mono скрипт C# и привязываем к GameObject (у которого анимация) В данном случае Panel.
//Bo52_15022021153631149.LIB.MONO_15022021153631149.
namespace Bo52_15022021153631149.LIB
{
using UnityEngine;
using UnityEditor;
public class MONO_15022021153631149:Bo52.SYSTEM.Mono
{
public void OpenPanel()
{
Animator anim = gameObject.GetComponent();
bool isOpen = anim.GetBool("open");
anim.SetBool("open", !isOpen);
}
}
}
MonoBehaviour код для игрового объекта на сцене с анимацией
Привязываем к событию OnClick кнопки
(в данном случае «Menu») метод из привязанного моно скрипта к игровому объекту (Panel) OpenPanel()
