- Плавное открытие панели при нажатии кнопки
- Плавное закрытие панели при нажатии кнопки
На сцене редактора 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, который отвечает за состояние панели (открыт или закрыт)
Создаём файл 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()