7. Анимация в Unity3d
7. Создание анимации в Unity3d на C#
7.1. Создание аниматора
Добавим куб к сцене. Далее нам нужен контроллер анимации, сама анимация, а также скрипт C#. В представлении активов внизу сцены давайте создадим все, что нам нужно, щелкнув правой кнопкой мыши на панели, затем:
Create -> Animation controller
Create -> Animation
Create -> C# Script
Что мы хотим сделать? Мы создадим нашу сцену, используя 3D-объект в центре - наш куб, а также мы хотим, чтобы куб вращался по левому нажатию кнопки мыши.
Два состояния, которые уже созданы, называются состояниями
«Normal» и «MouseDownState». Чтобы создать состояние, необходимо щелкнуть правой кнопкой мыши, затем
нажать «Create State», а затем «Empty».
Теперь, если вы посмотрите между двумя созданными состояниями, мы увидим две соединяющие белые линии со стрелками на них. Они называются Tranisations, и для их создания щелкните правой кнопкой мыши состояние и выберите «Make Transition». Далее надо немного отредактировать: нажмите переход и снимите флажок «Has Exit Time». На рисунке показан пример того, что вы увидите.
Если убрать галочку с опцией «Выйти», это не позволит автоматически перейти на «Нормальное» состояние «MouseDownState». Теперь, когда у нас есть базовый макет нашего контроллера, давайте создадим анимацию. Но, прежде чем мы отходим от представления контроллера анимации, нам нужно добавить анимацию в «MouseDownState».
Выбрав состояние, перетащите анимацию, созданную в assets, в поле «Motion», показанное на инспекторе. Вернитесь к нашему представлению сцены, выберите куб в сцене; затем перетащите контроллер анимации на куб. Сделайте то же самое для сценария. А теперь - при выбранном кубе - нажмите кнопку «add component» внизу панели инспектора. Когда появится диалоговое окно компонентов, нажмите «Physics», затем выберите «Box collider». Этот коллайдер поможет нам определить, действительно ли произведен щелчок мышью на 3D-объекте.
Если все вышеперечисленное было сделано, то вы должны увидеть эти компоненты в списке инспекторов, которые у вас есть как показано на рисунке 10 Теперь мы готовы создать простую анимацию вращения. В меню в верхней рабочей области нажмите «Window», а затем «Animation». Комбинация клавиш для этого - Ctrl + 6. Если у вас нет выбранного куба, сделайте это сейчас. Как только вы это сделаете, вы должны увидеть, что окно анимации становится активным, с выбранной анимацией. Взгляните на рисунок, а затем добавьте свойство для анимации вращения.
После того, как вы добавили ключевые кадры во временную строку, теперь мы можем перейти к скрипту C# и заставить наш куб вращаться, когда нажмем на него.
7.2. Код на C#
//
Используйте это для инициализации
void Start() { }
//
Обновление вызывается один раз за кадр
void Update()
{
//
Определить, нажата ли левая кнопка мыши
if (Input.GetMouseButtonDown(0))
{
var ray = Camera.main.ScreenPointToRay
(Input.mousePosition);
RaycastHit raycastHit;
if (Physics.Raycast(ray, out raycastHit, 100))
{
// получаем коллайдер, на который щелкнули
var colliderHit = raycastHit.collider;
// получить объект игры, к
которому привязан коллайдер
var gameObjectHit =
colliderHit.gameObject;
// получить аниматор
gameObjects
var animator =
GameObjectHit.GetComponent<Animator>();
// воспроизведение анимации
animator.Play("MouseDownState");
}
}
}
Из кода видно, что можно получить многие объекты, свойства и все остальное, что нам нужно для построения нашей игры/приложения. Если вы затем запустите сцену и щелкните 3D-объект, мы увидим вращение.
Анимации |
Анимации |
Комментарии
Отправить комментарий