Скрипт на анимацию при наведении

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Скрипт на анимацию при наведении

Сообщение ВерховныйНоуНейм 25 фев 2017, 20:31

В общем... Я только начинаю пилить игры. По немногу разбираюсь, но застрял.
Я делаю главное меню.(буду описывать только важное)
Есть кнопка(спрайт) с аниматором и колайдером)
2 анимации ButtonIdle и ButtonActive(зациклена).
В аниматоре
ButtonIdle (стартовая) -> ButtonActive (и на оборот)
есть переменная active (bool), при активации которой осуществляется переход между анимациями.
Нужен скрипт (лучше на C#)
чтобы при наведении на кнопку включалась анимация ButtonActive, а на выходе ButtonIdle.
Я пробывал собирать инфу из роликов на ютубе форумов и прочих сайтов и мешать это пот себя.
Синтаксис:
Используется csharp
        public Animation ButtonIdle;
        public Animation ButtonActive;

        void OnMouseEnter () {
                ButtonActive = GetComponent<Animation>();
                ButtonIdle = GetComponent<Animation>();
                Animation.Play ("active");
        }

        void OnMouseExit () {
                Animation.Play ("idle");
        }
}
 

или пробывал через клипы
Синтаксис:
Используется csharp
        public AnimationClip idle;
        public AnimationClip active;

но все время появляются ошибки типа UnityEngine.Animation или UnityEngine.Animation.Play(String).
Мне все равно каким способом, главное чтоб работало
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Скрипт на анимацию при наведении

Сообщение samana 25 фев 2017, 20:36

А вам обязательно нужно сделать кнопку из спрайта? Просто можно сделать UI кнопку и у неё есть разные реакции на мышь, в то числе и спрайтовая анимация и всё будет работать автоматически.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Скрипт на анимацию при наведении

Сообщение ВерховныйНоуНейм 25 фев 2017, 20:38

секундочку...
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Скрипт на анимацию при наведении

Сообщение ВерховныйНоуНейм 25 фев 2017, 20:43

нет, в моем случае лучше спрайтом
буду рад если ответите)
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Скрипт на анимацию при наведении

Сообщение samana 25 фев 2017, 21:13

Если у вас всё так, как вы описали, что есть именно Animator с двумя анимациями, между которыми установили переход в обе стороны и этим всем управляет bool active аниматора, то вам достаточно такого кода:

Синтаксис:
Используется csharp
Animator _animator;

void Start()
{
    _animator = GetComponent<Animator>();
}

private void OnMouseEnter()
{
    _animator.SetBool("active",true);
}

private void OnMouseExit()
{
    _animator.SetBool("active",false);
}
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Скрипт на анимацию при наведении

Сообщение samana 25 фев 2017, 21:15

Есть подозрение, что у вас возникла путаница между Animator и Animation.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Скрипт на анимацию при наведении

Сообщение ВерховныйНоуНейм 26 фев 2017, 00:29

Спасибо, завтра проверю.
Путоницы небыло. Просто только начинаю изучать скрипты.
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Скрипт на анимацию при наведении

Сообщение Syberex 26 фев 2017, 01:28

При изучении скриптов очень не рекомендуется практиковаться на элементах гуй-я ;)
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Скрипт на анимацию при наведении

Сообщение ВерховныйНоуНейм 26 фев 2017, 12:28

Сначала unity не ругался, но при запуске при наведении нечего не происходило.
Теперь говорит end of file.
Если что у меня аниматор называется button.
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Скрипт на анимацию при наведении

Сообщение ВерховныйНоуНейм 28 фев 2017, 21:45

Ребят, простите мою тупость.
Не работало потому, что я забыл в самом конце } поставить
Исходный код:
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class active : MonoBehaviour {
        Animator anim;
        void Start () {
                anim = GetComponent<Animator> ();
        }
       
        private void OnMouseEnter()
        {
                anim.SetBool ("active", true);
        }

        private void OnMouseExit()
        {
                anim.SetBool ("active", false);
        }
}
 

Разбор:
вызываем сам аниматор Animator anim (anim - это ваше произвольное название, по которому вы будете его вызывать)
потом собственно берем наше название anim и устанавливаем значения anim.SetBool ("active", true) (active - название параметра bool в аниматоре)
Все работает, спасибо. (popcorn)
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 20