Header
Unity 2D [E1] - Gestire le collisioni
in: CSharp  So/Code: Generico Data: 23/02/2016
Ora: 12.10:28
Articolo visualizzato: 1270 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.

Commenti Commenti (0) | User Autore: Guido Camerlingo (Guiz)
Tags: unity 2D videogame gestione collisioni collider 2d detect collision





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
Codice Verifica

Commento massimo 5000 caratteri.(Tutti i campi contrassegnati da * sono obbligatori).

   

Ricerca

Glossario Naviga nel nostro glossario!
Scopri il gergo dei Geek!


 ULTIMI ARTICOLI


 Giochi in uscita oggi

Nessuna uscita prevista


 [EN] Last Articles

 Siti Amici

Visita il Blog Roll
Contattaci! Diventa nostro amico!



 Amazon


 Hot Downloads

3617

 Categorie

79
163
57
87
13
2
20
36
1
2
5
5
128
7
24
14
57
45

 Code

11
11
3
5
23
1
7

 Games

19
45
13

 GUIDE


 Novità Downloads

61
39
3617

 Tags Cloud

intel 3a vega WiDii3 generazione touch Alenia e.b.e. capua europeo Vehicle wi-drive vettore Alenia problemi Intermediate iphone Sandy microchip europa



 CopyRight

Valid XHTML 1.0 Transitional CSS Valido! [Valid RSS] Creative Commons License


Geek-Blog by Flavio Mandato, Giuseppe Vaccaro, Guido Camerlingo, Stefano Natale, Domenico Cavallo is licensed under a Creative Commons Attribuzione-Non opere derivate 2.5 Italia License.
Based on a work at www.geek-blog.it.
Permissions beyond the scope of this license may be available at http://www.geek-blog.it/

Disclaimer - Responsabilità - Pagina generata in 0.108 secondi. Geek-Blog.it