Как пользоваться UI кнопками в Unity?

На самом деле функций у кнопок в Unity больше, чем могло бы показаться на первый взгляд и не всегда все реализуется самостоятельно с наскока без мануалов.

Если вы делаете какое-то меню, то кнопки можно использовать, как обычно, то есть, одно нажатие один вызов функции. Но если эта кнопка должна реализовывать перемещение персонажа или это кнопка модификатор, бег например, то подход необходимо изменить.

Для начала, думаю стоит рассмотреть простейший вариант как создать кнопку.

Одиночное нажатие UI кнопки

Для создания самой кнопки на канвасе заходим в меню и создаем объект кнопки.

как создать кнопку в unity

Далее для работы с кнопкой нам нужен скрипт который будет принимать события от кнопки.

Скрипт кнопки

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Button : MonoBehaviour
{
    public void onClick()
    {
        Debug.log("клик");
    }
}

Скрипт кинем на камеру. Создадим новое событие по клику и выберем там объект камеры на котором висит скрипт.

Как пользоваться UI кнопками в Unity?

При нажатии на кнопку мы будем просто выводить сообщение в консоль. Теперь нужно связать эту функцию с необходимым событием на кнопке.

Как пользоваться UI кнопками в Unity?

Готово, теперь при клике будет выводиться сообщение в консоль.

Как пользоваться UI кнопками в Unity?
Работает!

Выполнение действия пока нажата UI кнопка

Вот мы и подошли к случаю, когда вам необходимо, что-либо выполнять пока нажата кнопка.

Для решения этой задачи необходимо добавить компонент Event Trigger и указать там нужные нам события, а так же прописать новый код в скрипте.

Как пользоваться UI кнопками в Unity?
Как пользоваться UI кнопками в Unity?
Как пользоваться UI кнопками в Unity?

Скрипт кнопки.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Button : MonoBehaviour
{
   
    public void onClick()
    {
        Debug.Log("клик");

    }

    
    bool Pressed = false;
    public void onDown()
    {
        Pressed = true;
    }

    public void onUp()
    {
        Pressed = false;
    }

    void Update() {
        if (Pressed) Debug.Log("Кнопка нажата");
    }
}

В скрипте мы запоминаем, что кнопка была нажата, а затем ждем когда ее отпустят. Все время между этими событиями выполняем полезное действие, в нашем случае выводим сообщения в консоль.

Как пользоваться UI кнопками в Unity?

За одно нажатие вывалилось очень много сообщений. Вместо них можно заставить бежать персонажа, стрелять, присесть да и все что угодно вашей фантазии.

Скачать пример можно по ссылке.

3.7/5 (22)

Оцените