Отображение текста при касании объекта в Unity

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

Шаг 1. Создайте проект Unity

Если вы еще этого не сделали, начните с открытия Unity и создания нового 3D-проекта. Убедитесь, что у вас установлены необходимые ресурсы для предпочитаемой вами среды разработки.

Шаг 2. Импортируйте 3D-объект

Импортируйте 3D-объект в вашу сцену, который представляет собой элемент, с которым будут взаимодействовать игроки. Это может быть куб, сфера или любой другой объект, подходящий для вашей игры.

Шаг 3: Добавьте коллайдер

Прикрепите компонент коллайдера к вашему 3D-объекту. Это позволит ему определять, когда с ним взаимодействуют другие объекты. Общие типы коллайдеров включают Box Collider, Sphere Collider или Mesh Collider, в зависимости от формы вашего объекта.

Шаг 4. Создайте холст и текст

Создайте UI Canvas, щелкнув правой кнопкой мыши в иерархии сцены, выбрав UI, а затем Canvas. Внутри холста добавьте компонент «Текст», который будет отображать ваше сообщение.

Шаг 5. Установите холст в мировое пространство

Измените режим рендеринга компонента Canvas на 'World Space'. Это позволяет холсту существовать в трехмерном пространстве вашей игры.

Шаг 6: Расположите холст

Отрегулируйте положение холста так, чтобы оно совпадало с вашим 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. Добавьте скрипт к объекту

Прикрепите к вашему 3D-объекту скрипт C#, который будет обрабатывать логику взаимодействия и назначать все необходимые переменные.

Шаг 9. Проверьте свою игру

Запустите свою игру и проверьте взаимодействие. Текст должен появиться при нажатии или прикосновении к указанному объекту.

Рекомендуемые статьи
Реализация пула объектов в Unity
Создание контроллера турели в Unity
Создание базуки в Unity
Комплексное руководство по преобразованию вращения в Unity
Логика стрельбы из ракетницы в Unity
Встроенный способ работы с JSON в коде Unity
Создание 2D-шипов в Unity