Header
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.

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

774 giorni fa
995 giorni fa

 [EN] Last Articles

1293 giorni fa
 Siti Amici

Visita il Blog Roll
Contattaci! Diventa nostro amico!



 Hot Downloads


 Categorie

85
163
58
87
13
2
20
36
1
2
5
5
128
7
24
15
62
45

 Code

11
11
3
6
2
24
1
7

 Games

19
45
13

 GUIDE


 Novità Downloads

75
69
3882

 Tags Cloud

android film Wargames Stargate Ghostbusters svizzera word General blog Jurassic wikielaks.ch nuovo mysql Silicon Wargames President Pirates wikielaks.ch scifi



 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.034 secondi. Geek-Blog.it