Exibir texto no toque do objeto no Unity
Bem-vindo a este tutorial Unity, onde você aprenderá como fazer texto aparecer ao tocar em um objeto no seu jogo. Essa interação simples pode adicionar um elemento envolvente ao seu projeto. Este tutorial funcionará tanto em dispositivos móveis quanto em computadores.
Etapa 1: Crie um projeto Unity
Se ainda não o fez, comece abrindo Unity e criando um novo projeto 3D. Certifique-se de ter os ativos necessários instalados para seu ambiente de desenvolvimento preferido.
Etapa 2: importar objeto 3D
Importe um objeto 3D para sua cena que representa o item com o qual os jogadores irão interagir. Pode ser um cubo, uma esfera ou qualquer outro objeto adequado ao seu jogo.
Etapa 3: adicionar colisor
Anexe um componente colisor ao seu objeto 3D. Isso permitirá detectar quando outros objetos interagem com ele. Os tipos comuns de colisor incluem Box Collider, Sphere Collider ou Mesh Collider, dependendo da forma do seu objeto.
Etapa 4: criar tela e texto
Crie um UI Canvas clicando com o botão direito na hierarquia da cena, selecionando UI e depois Canvas. Dentro da tela, adicione um componente Text que exibirá sua mensagem.
Etapa 5: definir o Canvas para o espaço mundial
Altere o modo de renderização do componente Canvas para 'World Space'. Isso permite que a tela exista no espaço 3D do seu jogo.
Etapa 6: posicionar a tela
Ajuste a posição da tela para que ela se alinhe ao objeto 3D. Isso garante que o texto apareça próximo ao objeto quando acionado.
Etapa 7: escrever o script
Escreva um script que detectará quando o jogador interage com o objeto. Quando ocorrer interação, ative o Canvas e defina o conteúdo do componente Texto. Verifique o script de exemplo abaixo:
'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!";
}
}
}
Etapa 8: adicionar script ao objeto
Anexe um script C# ao seu objeto 3D, que irá lidar com a lógica de interação e atribuir todas as variáveis necessárias.
Etapa 9: teste seu jogo
Execute seu jogo e teste a interação. O texto deve aparecer quando você clica ou toca no objeto designado.