Відображення тексту на дотику об’єкта в 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. Перевірте свою гру

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