Costruisci le piattaforme
Lezione 7 di 25 del corso Gioco Unity: Tower Defense di Coddy.
Il giocatore costruisce torri facendo clic sulle piattaforme grigie di costruzione. Un clic è un punto sullo schermo, quindi diventa un raggio: Camera.main.ScreenPointToRay restituisce il raggio dalla videocamera attraverso quel punto, e Physics.Raycast segnala il primo collider che colpisce, quello sotto il mouse.
Ray ray = Camera.main.ScreenPointToRay(Mouse.current.position.ReadValue());
if (Physics.Raycast(ray, out RaycastHit hit))
{
Debug.Log("Clicked " + hit.collider.name);
}Il raggio colpisce anche il terreno, il percorso e gli alberi. hit.collider.TryGetComponent(out BuildPad pad) verifica se l'oggetto colpito è una piattaforma, quindi gli altri clic non fanno nulla. Tutte le scene qui usano l'Input System, quindi Mouse.current legge il mouse (using UnityEngine.InputSystem;).
Sfida
MedioFai clic su una piazzola per costruirci sopra una torre Arrow.
- In
BuildPad, aggiungipublic Tower tower;. - In
BuildManager, aggiungi[SerializeField] private Tower towerPrefab;. InUpdate, quandoMouse.current.leftButton.wasPressedThisFrame, lancia un raggio attraverso il mouse. - Se colpisce una
BuildPadil cuitowerè null, impostapad.tower = Instantiate(towerPrefab, pad.transform.position, Quaternion.identity);.
Premi «Gioca» e fai clic sulle piazzole: su ciascuna comparirà una torre. Poi premi «Verifica».
Provalo tu
using UnityEngine;
// Verranno aggiunti in seguito: il clic sulle piattaforme di costruzione per posizionare le torri, il negozio e il pannello delle torri.
public class BuildManager : MonoBehaviour
{
}
Tutte le lezioni di Gioco Unity: Tower Defense
Esercitati da solo: Playground Unity