Відображення тексту на дотику об’єкта в 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. Перевірте свою гру
Запустіть вашу гру та перевірте взаємодію. Текст має з’являтися, коли ви клацаєте або торкаєтеся зазначеного об’єкта.