Уроки Unity C#

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

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

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

Відеоурок

Telegram group

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

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


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

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

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

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

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

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

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

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

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

Уроки C# для початківців з нуля
26 уроків
Изучение C# WPF на практике. Создание программ на C#
Создание C# WPF игры / Разработка игры с дизайном
Изучение ASP.NET Core MVC. Создание сайтов на C#
Программа на C# .NET Windows Forms
Разработка 2D игры на C# WinForms
Коментарі (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);
    }
}
Відповісти