Single Tech Games

Tutorial de Unity 3D (5.x) – Haciendo un juego usando físicas 6

Hola Gente! Esta semana hacemos que el Flappy muera al contacto con el León, pero que este no se mueva, ni muera a menos que le caiga un tronquito. Simple de decir, simple de hacer, de paso dejamos todo listo para finalizar el Nivel.

FlappyScript

-
-
-
void OnCollisionEnter2D(Collision2D coll) {
		if (coll.gameObject.name == "Leon")
			animador.SetBool("Muerto",true);
	}

LeonScript

-
-
-
	void OnCollisionEnter2D(Collision2D coll) {
		if (coll.gameObject.name == "Tronquito")
			animador.SetBool("Muerto",true);
		if (coll.gameObject.name == "Flappy")
			GetComponent<Rigidbody2D>().isKinematic = true;
	}
	void OnCollisionExit2D(Collision2D coll) {
		if (coll.gameObject.name == "Flappy")
			GetComponent<Rigidbody2D>().isKinematic = false;
	}

Nivel1Script

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Nivel1Script : MonoBehaviour {
	public int puntajes = 400;
	private int puntaje3Estrella = 399;
	private int puntaje2Estrella = 299;
	public Animator[] animEstrellas;
	public Text puntajesTxt;
	public Transform menuFin;
	public Transform menuPausa;
	public bool juegoTerminoEnExito;
	public bool juegoTerminoEnFallo;
	private bool guardoPuntajes;
	void Update()
	{
		if(juegoTerminoEnExito){
			if(guardoPuntajes==false)
			{
				guardarPuntajes();
			}
		}
		else{
			if(juegoTerminoEnFallo)
				menuPausa.gameObject.SetActive(true);
		}
	}
	public void modificarPuntajes(int puntos)
	{
		puntajes = puntajes + puntos;
	}
	public void guardarPuntajes()
	{
		menuFin.gameObject.SetActive(true);
		puntajesTxt.text = puntajes.ToString();
		int puntajeAnterior = PlayerPrefs.GetInt("puntajeNivel1");
		int numEstrellas = 0;
		if(puntajes < puntaje2Estrella)
			numEstrellas = 1;
		if(puntajes > puntaje2Estrella)
			numEstrellas = 2;
		if(puntajes > puntaje3Estrella)
			numEstrellas = 3;
		for(int i = 0; i < numEstrellas; i++)
		{
			animEstrellas[i].SetBool("Pintar",true);
		}
		if(puntajes>puntajeAnterior)
		{
			PlayerPrefs.SetInt("puntajeNivel1",puntajes);
			PlayerPrefs.SetInt("estrellasNivel1",numEstrellas);
		}
		guardoPuntajes = true;
	}
}

Proyecto
https://app.box.com/s/5qtwtafama1rmppfq732ksjbaim9vp7g
Suerte!

0 0 votes
Article Rating
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
ang

se esta intentado crear un lugar en StackExchange sobre el desarrollo de videojuegos en español, que se creara algo asi seria muy bueno para los desarrolladores hispanohablantes pueden ver la propuesta aqui http://area51.stackexchange.com/proposals/87251/game-development-in-spanish y si pueden ayudar a su creacion solo se nesecita tener una cuenta Exchange que es gratuita y apoyar a la creacion del sitio.