Menu
CoddyTech

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;).

challenge icon

Sfida

Medio

Fai clic su una piazzola per costruirci sopra una torre Arrow.

  1. In BuildPad, aggiungi public Tower tower;.
  2. In BuildManager, aggiungi [SerializeField] private Tower towerPrefab;. In Update, quando Mouse.current.leftButton.wasPressedThisFrame, lancia un raggio attraverso il mouse.
  3. Se colpisce una BuildPad il cui tower è null, imposta pad.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