Четверг, 28 Марта 2024, 12:13

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать кнопку (GUI)
Как сделать кнопку
vampir0305Дата: Пятница, 25 Сентября 2015, 13:49 | Сообщение # 1
Unity C# Programmer
Сейчас нет на сайте
Всем привет. Как сделать кнопку которая будет реагировать на нажатие мышкой, или пальцем на андроиде/айосе, выполнять определённое действие и следовать за камерой. И ещё как отловить нажатие на объект. Пространство 2D.

Красочная сюжетно-ориентированная игра-головоломка

Сообщение отредактировал vampir0305 - Пятница, 25 Сентября 2015, 13:58
basistДата: Пятница, 25 Сентября 2015, 13:58 | Сообщение # 2
пациент Flight Dream Studio
Сейчас нет на сайте
vampir0305, Тыц
vampir0305Дата: Воскресенье, 27 Сентября 2015, 19:04 | Сообщение # 3
Unity C# Programmer
Сейчас нет на сайте
basist, спс, сделал кнопку, но она не вызывает функцию почему-то.
На C#
Код
using UnityEngine;
using System.Collections;

public class controlcar : MonoBehaviour {

     public bool go_left = false;
     public bool go_right = false;

     void Start () {

     }

     public void GoFunc()
     {
         go_left = true;
     }

     public void GoFunc2()
     {
         go_right = true;
     }

     void Update () {

         if(Input.GetKey(KeyCode.A))
         {
             go_left = true;
         }
         else if (Input.GetKey(KeyCode.D))
         {
             go_right = true;
         }
         else
         {
             go_left = false;
             go_right = false;
         }

         if (go_left == true)
         {
             Debug.Log("left")
         }

         if (go_right == true)
         {
             Debug.Log("right")
         }

     }
}

Добавлено (27 сентября 2015, 19:04)
---------------------------------------------
Помогите!


Красочная сюжетно-ориентированная игра-головоломка
berilДата: Воскресенье, 27 Сентября 2015, 20:16 | Сообщение # 4
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата vampir0305 ()
Помогите!

Все работает! У тебя ошибки какие то выкидывает? у тебя нету знака ";" в строках где Debug.Log




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
vampir0305Дата: Воскресенье, 27 Сентября 2015, 20:23 | Сообщение # 5
Unity C# Programmer
Сейчас нет на сайте
beril, если ты говоришь про
Код
if(Input.GetKey(KeyCode.A))
            {
                go_left = true;
            }
            else if (Input.GetKey(KeyCode.D))
            {
                go_right = true;
            }


То да, это работает. А вот UI Button нет.

Добавлено (27 сентября 2015, 20:23)
---------------------------------------------
Вот скрин кнопки:


Красочная сюжетно-ориентированная игра-головоломка

Сообщение отредактировал vampir0305 - Воскресенье, 27 Сентября 2015, 20:24
berilДата: Воскресенье, 27 Сентября 2015, 21:33 | Сообщение # 6
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Все работает если убрать условия эти
Код
else
          {
              go_left = false;
              go_right = false;
          }

Он же постоянно в Update этим переменным присваивает значение false.
Если нужно go_left = false; при отпуске мышки используй событие OnPointerUp , если нужно что бы работаа кнопка когда ее нажимаешь и удерживаешь OnPointerDown




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
berilДата: Воскресенье, 27 Сентября 2015, 21:36 | Сообщение # 7
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
В общем вот тебе рабочий код , вешать нужно именно на кнопку к которой нужно применить данные события
Код
using UnityEngine.UI;

public class Test : MonoBehaviour,  IPointerDownHandler, IPointerUpHandler {

     public bool go_left = false;
     public bool go_right = false;

     void Start()
     {

     }

     void Update()
     {

         if (go_left == true)
         {
             Debug.Log("left");
         }

         if (go_right == true)
         {
             Debug.Log("right");
         }

     }

     public void OnPointerDown(PointerEventData eventData)
     {
         go_left = true;
         go_right = true;
     }

     public void OnPointerUp(PointerEventData eventData)
     {
         go_left = false;
         go_right = false;
     }
}




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
vampir0305Дата: Понедельник, 28 Сентября 2015, 14:48 | Сообщение # 8
Unity C# Programmer
Сейчас нет на сайте
beril, Огроменное спасибо!!! Всё работает! Репу плюсанул!

Добавлено (28 сентября 2015, 14:48)
---------------------------------------------
У меня вопрос. Будет ли эта кнопка работать на андроиде?


Красочная сюжетно-ориентированная игра-головоломка
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать кнопку (GUI)
  • Страница 1 из 1
  • 1
Поиск:

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