Відображення тексту на дотику об’єкта в Unity

Ласкаво просимо до цього підручника Unity, де ви дізнаєтеся, як зробити так, щоб текст з’являвся під час дотику об’єкта у вашій грі. Ця проста взаємодія може додати елемент занурення у ваш проект. Цей підручник працюватиме як на мобільному, так і на настільному комп’ютері.

Крок 1: Створіть проект Unity

Якщо ви ще цього не зробили, почніть із відкриття Unity і створення нового 3D-проекту. Переконайтеся, що у вас встановлено необхідні ресурси для бажаного середовища розробки.

Крок 2: Імпортуйте 3D-об’єкт

Імпортуйте 3D-об’єкт у вашу сцену, який представляє предмет, з яким гравці взаємодіятимуть. Це може бути куб, сфера або будь-який інший предмет, який підходить для вашої гри.

Крок 3: Додайте колайдер

Прикріпіть компонент коллайдера до вашого 3D-об’єкта. Це дозволить йому виявляти, коли з ним взаємодіють інші об’єкти. Поширені типи коллайдерів включають Box Collider, Sphere Collider або Mesh Collider, залежно від форми вашого об’єкта.

Крок 4: Створіть полотно та текст

Створіть Полотно інтерфейсу користувача, клацнувши правою кнопкою миші в ієрархії сцени, вибравши UI, а потім Canvas. Усередині полотна додайте компонент Text, який відображатиме ваше повідомлення.

Крок 5: встановіть Canvas на World Space

Змініть режим візуалізації компонента Canvas на 'World Space'. Це дозволяє полотну існувати в 3D-просторі вашої гри.

Крок 6: Розташуйте Canvas

Відрегулюйте положення полотна так, щоб воно вирівнялося з вашим 3D-об’єктом. Це гарантує, що текст з’явиться біля об’єкта під час запуску.

Крок 7: Напишіть сценарій

Напишіть скрипт, який визначатиме, коли гравець взаємодіє з об’єктом. Коли відбувається взаємодія, активуйте Canvas і встановіть вміст компонента Text. Перегляньте приклад сценарію нижче:

'ObjectInteraction.cs'

using UnityEngine;
using UnityEngine.UI;

public class ObjectInteraction : MonoBehaviour
{
    public GameObject canvas;
    public Text displayText;

    private void Start()
    {
        canvas.SetActive(false);
    }

    private void Update()
    {
        // Use inline conditional to determine input position based on platform
        Vector3 inputPosition = (Input.touchCount > 0) ? Input.GetTouch(0).position : (Vector3)Input.mousePosition;

        // Raycast to determine if the touch or click hits the object
        Ray ray = Camera.main.ScreenPointToRay(inputPosition);

        RaycastHit hit;
        if (Physics.Raycast(ray, out hit) && hit.collider.gameObject == gameObject)
        {
            // Activate the canvas and set the text
            canvas.SetActive(true);
            displayText.text = "Your message here!";
        }
    }
}

Крок 8: Додайте сценарій до об’єкта

Додайте сценарій C# до свого 3D-об’єкта, який оброблятиме логіку взаємодії та призначатиме всі необхідні змінні.

Крок 9. Перевірте свою гру

Запустіть вашу гру та перевірте взаємодію. Текст має з’являтися, коли ви клацаєте або торкаєтеся зазначеного об’єкта.

Рекомендовані статті
Створення гри на основі Pac-Man в Unity
Робота з рядками та маніпулювання текстовими даними в Unity
Створення інвентарю та система створення предметів в Unity
Методи обфускації Unity та захист від злому
Створення інтерактивних об’єктів в Unity
Реалізація кінетичних взаємодій в єдності
Відкривання ящиків і шаф за допомогою спеціальних ключів в Unity