• Home
  • Corsi

    Informazioni sui corsi

    • Tutti i corsi
    • Diventa un insegnante
    • Profilo insegnante
    Fondamenti di programmazione: le basi del linguaggio C++

    Fondamenti di programmazione: le basi del linguaggio C++

    €29.99
    Read More
    D4F Games
  • Develop4fun
    • Chi siamo
    • Portfolio
    • Eventi
    • Galleria
    • Negozio
    • FAQ
  • Articoli
  • Contattaci
    • Categorie

      • Sviluppo
        • Linguaggio di programmazione
          • C#
          • C++
          • Javascript
          • Lua
        • Videogiochi
          • LOVE2D
          • Phaser 3
          • RayLib
          • Unity3D
          • Unreal Engine
        • Web
          • Backend
            • PHP e MySQL
          • CMS
          • Frontend
            • CSS
            • Html
            • Javascript
    • Login

Cerca

Hai qualche domanda?
contact@develop4fun.com
Develop4fun
  • Home
  • Corsi

    Informazioni sui corsi

    • Tutti i corsi
    • Diventa un insegnante
    • Profilo insegnante
    Fondamenti di programmazione: le basi del linguaggio C++

    Fondamenti di programmazione: le basi del linguaggio C++

    €29.99
    Read More
    D4F Games
  • Develop4fun
    • Chi siamo
    • Portfolio
    • Eventi
    • Galleria
    • Negozio
    • FAQ
  • Articoli
  • Contattaci
    • Categorie

      • Sviluppo
        • Linguaggio di programmazione
          • C#
          • C++
          • Javascript
          • Lua
        • Videogiochi
          • LOVE2D
          • Phaser 3
          • RayLib
          • Unity3D
          • Unreal Engine
        • Web
          • Backend
            • PHP e MySQL
          • CMS
          • Frontend
            • CSS
            • Html
            • Javascript
    • Login

C#

Home » Articoli » [Unity] Programmare in C# – le funzioni OnTrigger

[Unity] Programmare in C# – le funzioni OnTrigger

  • Pubblicato da Antonella De Chiara
  • Categorie C#, Corso Unity, Mac, PC, Programmazione Videogiochi, Unity
  • Data 9 Agosto 2019
  • Commenti 0 commenti
C#
(Ultimo aggiornamento: 21 Settembre 2021)

In Unity, i trigger sono una versione speciale di Collider. Questi servono alla creazione di oggetti non tangibili, di cui però si vogliono comunque rilevare le collisioni. È il caso ad esempio di un gioco d’avventura (o piattaforme), in cui di solito si usano dei cubi invisibili per creare delle “aree interruttore” (trigger, appunto) in cui appena il personaggio vi entra, succede qualcosa (si chiude la porta dietro di lui, inizia una sfida, ecc.).

Per creare trigger, è necessario spuntare la casella Is Trigger nell’Inspector di un qualunque collider. Così facendo l’oggetto potrà compenetrare altri collider e non li spingerà via.

In più, i trigger non emettono i tre eventi OnCollisionEnter, OnCollisionExit, OnCollisionStay, ma una versione speciale chiamata OnTriggerEnter, OnTriggerExit, OnTriggerStay. Le funzioni OnTrigger sono molto simili a quelle OnCollision, ma posseggono un parametro che non è di tipo Collision ma Collider (ovvero il collider che ha toccato l’oggetto). Per questo motivo contengono meno informazioni, ma sono anche più leggere da calcolare delle controparti OnCollision.

Ad esempio:

private void OnTriggerEnter(Collider otherCollider)
{
	if(otherCollider.gameObject.tag == "Player")
	{
		GameManager.Instance.CloseTheDoor();
	}
}

In questo esempio, usiamo OnTriggerEnter per rilevare quando il giocatore entra in una stanza. Poiché il trigger potrebbe scattare anche nel caso in cui un nemico o un proiettile passi la porta, nella funzione leggiamo la proprietà otherCollider.gameObject.tag dell’altro oggetto per chiamare CloseDoor solo se è il giocatore ad entrare.

Così come per i collider normali, le funzioni OnTrigger effettuano queste azioni solo se almeno uno dei due oggetti coinvolti nello scontro possiede un Rigidbody ‘non kinematic’ (che vedremo nella prossima lezione sui Rigidbody).

Per approfondire l’argomento, qui troverete un tutorial molto interessante creato sul sito ufficiale di Unity.

Visualizzazioni post: 1.089

Tag:c-sharp, Collider, Component, Game Designer, Gamedev, GameObject, OnTriggerEnter, OnTriggerExit, OnTriggerStay, programmare videogiochi, Programmatore, trigger, Unity3D, Videogiochi

  • Share:

ABOUT INSTRUCTOR

Antonella De Chiara
Antonella De Chiara

Appassionata di giochi di ruolo giapponesi, genere che ha scoperto grazie alla saga Final Fantasy e approfondito con i capolavori usciti negli ultimi anni, s’interessa al retrogaming, rigiocando e programmando vecchie glorie come Monkey Island, Prince of Persia o vecchi capolavori marchiati Nintendo.
Antonella comincia il suo percorso giornalistico in Italia, lavorando con Gamerepublic, PS Mania e Pokémon Mania. Si trasferisce in Francia per studiare la programmazione web e gamedev: grazie a questo percorso anomalo nasce Develop4fun.

Articolo precedente

[Unity] Programmare in C# – GameObjects
9 Agosto 2019

Articolo successivo

Quali sono le differenze tra articoli e pagine in WordPress
12 Agosto 2019

Ti potrebbe anche piacere

unity3d
Chi sono gli sviluppatori nel mondo dei videogiochi?
22 Novembre, 2021
Steam
Come pubblicare un videogioco su Steam?
21 Settembre, 2021
Money Game
Sviluppare Videogiochi: come fare un’indagine sul mercato
9 Settembre, 2021

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Cerca

Impara a programmare videogiochi web con Phaser 3

Impara a programmare videogiochi web con Phaser 3

€49.99
HTML e CSS: Corso di programmazione per principianti

HTML e CSS: Corso di programmazione per principianti

€69.99
[Lua & LOVE2D] Introduzione alla programmazione dei videogiochi

[Lua & LOVE2D] Introduzione alla programmazione dei videogiochi

€49.99
D4F Games

Ultimi articoli pubblicati

unity3d
Chi sono gli sviluppatori nel mondo dei videogiochi?
22Nov2021
[Unreal Engine] Un nuovo fantastico asset GRATUITO!
[Unreal Engine] Slay, un nuovo fantastico asset GRATUITO!
22Set2021
Steam
Come pubblicare un videogioco su Steam?
21Set2021

Develop4fun.it by Develop4fun.

Gestisci Consenso Cookie
Usiamo cookie per ottimizzare il nostro sito web ed i nostri servizi.
Funzionale Sempre attivo
L'archiviazione tecnica o l'accesso sono strettamente necessari al fine legittimo di consentire l'uso di un servizio specifico esplicitamente richiesto dall'abbonato o dall'utente, o al solo scopo di effettuare la trasmissione di una comunicazione su una rete di comunicazione elettronica.
Preferenze
L'archiviazione tecnica o l'accesso sono necessari per lo scopo legittimo di memorizzare le preferenze che non sono richieste dall'abbonato o dall'utente.
Statistiche
L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici. L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici anonimi. Senza un mandato di comparizione, una conformità volontaria da parte del vostro Fornitore di Servizi Internet, o ulteriori registrazioni da parte di terzi, le informazioni memorizzate o recuperate per questo scopo da sole non possono di solito essere utilizzate per l'identificazione.
Marketing
L'archiviazione tecnica o l'accesso sono necessari per creare profili di utenti per inviare pubblicità, o per tracciare l'utente su un sito web o su diversi siti web per scopi di marketing simili.
Gestisci opzioni Gestisci servizi Gestisci fornitori Per saperne di più su questi scopi
Preferenze
{title} {title} {title}