Unity 2D [E1] - Gestire le collisioni | |
in: CSharp So/Code: Generico Data: 23/02/2016 Ora: 12.10:28 Articolo visualizzato: 3401 volte |
|
Questo è un mini tutorial in ambiente Unity 2D con il fine di spiegare semplicemente la gestione delle collisioni. C'è ne saranno diversi dove verranno spiegate le più comuni problematiche riscontrate nello sviluppo di giochi 2D. La gestione della collisione è alla base di qualsiasi videogioco, in Unity è possibile gestirle in maniera molto rapida ed intuitiva. Supponiamo di avere un oggetto di nome "Box" con una sprite raffigurante una cassa.
A questo oggetto abbiamo applicato, oltre che la sprite, anche un Box Collider 2D e uno script che andremo a creare. L'inserimento del BoxCollider2D rende possibile l'intercetto delle collisioni oltre che la definizione dello spazio delle collisioni tramite "Edit Collider".
Vediamo nel dettaglio come editare lo script per gestire l'intercetto.
Abbiamo sostanzialmente 3 metodi: OnCollisionEnter2D,OnCollisionExit2D,OnCollisionStay che riceveranno come parametro la Collision. Questa contiene le informazioni sulla collisione rispettivamente in entrata, in uscita e nell'atto. Le informazioni sono ad esempio i punti di collisione,la velocità etc...
using UnityEngine; using System.Collections; using UnityEngine.EventSystems; using UnityEngine.UI; public class BoxColliderScript : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } void OnCollisionEnter2D (Collision collisionInfo) { // points of collision foreach (ContactPoint contact in collisionInfo.contacts) { Debug.DrawRay(contact.point, contact.normal, Color.white); } // velocity //collisionInfo.relativeVelocity } void OnCollisionExit2D (Collision collisionInfo) { // exit collision object print("No longer in contact with " + collisionInfo.transform.name); } void OnCollisionStay(Collision collisionInfo) { // points of collision foreach (ContactPoint contact in collisionInfo.contacts) { Debug.DrawRay(contact.point, contact.normal, Color.white); } } } E' solo una piccola infarinatura, lasciate un commento per ulteriori domande. | |
|
Articoli Correlati
Unity 2D [E1] - Gestire le collisioni |
Unity 2D [E1] - Detecting Collisions |
Km3NeT - Il primo telescopio sottomarino |
Cern, fenomeni mai visti prima |
Ubuntu 10.10 Maverick Meerkat RC (Release Candidate) |
Commenti
Scrivi Commento