Уроки Unity C#

#7 – Відстеження дій користувача

#7 – Відстеження дій користувача

За урок ми навчимося працювати з користувачем і відстежувати команди, що надходять від нього. Ми навчимося відстежувати натискання на кнопки і залежно від них виконувати дії. Також ви створите функціонал для пересування гравців.

Відеоурок

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

Для роботи з користувачем в Unity є передвстановлені методи. Ці методи дозволяють відстежити натискання на будь-яку з клавіш або відстежити натискання на кілька клавіш одночасно.


Найбільш популярні методи:

  • GetKeyUp – дозволяє відстежити повне натискання на будь-яку з кнопок;
  • GetAxis – перевіряє натискання на певні клавіші.

Матеріали для курсу

Щоб завантажувати матеріали до відеокурсів, необхідно оформити підписку на сайт

Завдання до уроку

Необхідно оформити передплату на проект, щоб отримати доступ до всіх домашніх завдань

Велике завдання за курсом

Вам необхідно оформити передплату на сайті, щоб мати доступ до всіх великих завдань. У завдання входить методика рішення, а також готовий проект з відповіддю до завдання.
PS: подібні завдання доступні при підписці від 1 місяця

Також варто подивитися

Xamarin Forms / Мобильные приложения на C#
Уроки C# для початківців з нуля
26 уроків
Изучение ASP.NET Core MVC. Создание сайтов на C#
Создание C# WPF игры / Разработка игры с дизайном
Программа на C# .NET Windows Forms
Изучение C# WPF на практике. Создание программ на C#
Коментарі (1)
Додати коментар

Vasyl 13 липня 2023 в 20:01

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

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

public class MovePlayer : MonoBehaviour
{
    public float speed = 10f;

    private void Update()
    {
        if (Input.GetKey(KeyCode.Keypad8))
        {
            transform.Translate(new Vector3(0, 0, 1) * speed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.Keypad5))
        {
            transform.Translate(new Vector3(0, 0, -1) * speed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.Keypad4))
        {
            transform.Translate(new Vector3(-1, 0, 0) * speed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.Keypad6))
        {
            transform.Translate(new Vector3(1, 0, 0) * speed * Time.deltaTime);
        }

        float v = Input.GetAxis("Vertical");
        transform.Translate(new Vector3(0, 0, 1) * speed * Time.deltaTime * v);
        float h = Input.GetAxis("Horizontal");
        transform.Translate(new Vector3(1, 0, 0) * speed * Time.deltaTime * h);
    }
}
Відповісти