Понедельник, 11 Ноября 2024, 03:05

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Действие по нажатию на кнопку UI (Unity 5)
OneKeyДата: Воскресенье, 05 Июля 2015, 14:21 | Сообщение # 1
участник
Сейчас нет на сайте
Привет всем, такая проблема не могу разобраться как сделать стрельбу по нажатию на кнопку на экране. Кнопку я добавил в канвас добавил кней эвент систепу. У меня есть "пушка" которая должна стрелять по нажатию на эту кнопку. Вот скрипт внизу он очень простой.



http://www.falcogames.com/SnowCrushSetup.exe
romeo98Дата: Воскресенье, 05 Июля 2015, 15:35 | Сообщение # 2
участник
Сейчас нет на сайте
Убери с кнопки Event System и добавь Event Trigger. Добавь нужное условие, когда будет вызываться выстрел. Далее...
Сделай public функцию
Код

public void Fire()
{
          Instantiate(bullet,transform.position,transform.rotation);       
          GetComponent<AudioSource>().Play();       
          counter = 0;       
}


Добавь в инспекторе в условие того триггера объект на котором висит этот скрипт (можно повесить скрпит на этот же объект, на котором триггер). Выбери публичную функцию "Fire" в выпадающем меню и PROFIT!

PS Может я не правильно выразился... Не удаляй объект EventSystem, который добавляется автоматом при создании канваса. Убери компонент Event System с кнопки, если ты туда его добавлял.

Я тут подумал... Тебе скорее всего хочется сделать так, чтобы при нажатой кнопки воспроизводилось действие. Тогда код будет такой:
Код

       bool isPresed;

       public void StartFire()
       {
           isPresed = true;
       }

       public void FinishFire()
       {
           isPresed = false;
       }

    public void Update()
       {
           if(isPresed)
           {
                  Instantiate(bullet,transform.position,transform.rotation);       
                  GetComponent<AudioSource>().Play();       
                  counter = 0;     
           }
       }


А в триггере нужно указать, что при "PointerDown" вызывается функция - StartFire, а при "PointerUp" - FinishFire.


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Воскресенье, 05 Июля 2015, 15:58
OneKeyДата: Воскресенье, 05 Июля 2015, 18:14 | Сообщение # 3
участник
Сейчас нет на сайте
romeo98, я разобрался, что там было не так правда теперь он постоянно их создает, а не тогда когда кнопку нажимаешь.

Добавлено (05 июля 2015, 17:33)
---------------------------------------------
Блин получилось только смену оружия сделать таким оброзом, а стрельбу нет от все время стриляет без нажатия

Добавлено (05 июля 2015, 18:14)
---------------------------------------------
Поколупался все равно не могу правильно настроить, теперь можно стрелять правда делает это при любом нажатии на экран как это исправить ?



http://www.falcogames.com/SnowCrushSetup.exe


Сообщение отредактировал OneKey - Воскресенье, 05 Июля 2015, 16:29
berilДата: Воскресенье, 05 Июля 2015, 18:42 | Сообщение # 4
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата OneKey ()
Поколупался все равно не могу правильно настроить, теперь можно стрелять правда делает это при любом нажатии на экран как это исправить ?

Если у тебя if (Input.GetKey ("Fire")) то он и должен стрелять при любом нажатии на экран




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
romeo98Дата: Воскресенье, 05 Июля 2015, 18:43 | Сообщение # 5
участник
Сейчас нет на сайте
OneKey, ты повесил триггер именно на кнопку в канвасе? Убедись, что кнопка размерами не на весь экран.

Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender
OneKeyДата: Воскресенье, 05 Июля 2015, 19:08 | Сообщение # 6
участник
Сейчас нет на сайте
Ну кажись не навесь.

Добавлено (05 июля 2015, 19:08)
---------------------------------------------
beril, я дописал его немного, правда не пойму еще почему следы от попадания создаются в воздухе особенно если в одно место стреляю




http://www.falcogames.com/SnowCrushSetup.exe


Сообщение отредактировал OneKey - Воскресенье, 05 Июля 2015, 19:04
shizofrenДата: Воскресенье, 05 Июля 2015, 19:15 | Сообщение # 7
Starting MS-DOS...
Сейчас нет на сайте
Код

[SerializeField]
Button yourButton;
void Start()
{
     yourButton.onClick.AddListener(Fire);
}

void Fire(){}


Моя команда
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг