Single Tech Games

Tutorial de Unity 2.5D XIII – Creando un inventario parte 4

Gente esta es la parte final del tutorial de inventarios, la verdad no sé muy que hacer en el siguiente video, creo que voy a ver todo lo que es salud, ver el tema de vida, o de plano iniciar otros tutorial, me ha provocado hacer algo como Ant Smasher, zombie smasher pero solo un nivel, o algún juego simple de hacer, este tutorial de unity 2.5D como que se hace muy largo, es probable que empiece a simplificar más mis tutoriales, al igual que mis juegos.
En otras noticias 😛 sigo en la selva de mi país casi casi desconectado, solo cuando regreso a la ciudad tengo internet, después vivo en una ciudad apartada bastante pequeña (unas 10 mil personas en total) sin acceso a internet, perfecto para descansar y meditar pero no muy bueno para investigar y aprender cosas nuevas, no tengo fecha definida de regreso a la normalidad así que me verán intermitente por aquí por estos días.

Proyecto
https://www.box.net/shared/z3xu9s0jnm1re5l2qy9a
Código
PersonajeScript

using UnityEngine;
using System.Collections;
public class PersonajeScript : MonoBehaviour {
	public int HP;
	public float resistencia;
	public Transform personajeSinArmadura;
	public Transform personajeConMetal;
	private int personajeActual = 1;//1 sin armadura, 2 con armadura
	// Use this for initialization
	void Start () {
		DontDestroyOnLoad (transform.gameObject);
	}
	public void cambiarArmadura(string codigo)
	{
		Transform personajeUsando = null;
		if(personajeActual == 1)
		{
			personajeUsando = personajeSinArmadura;
			personajeSinArmadura.gameObject.SetActive(false);
		}
		if(personajeActual == 2)
		{
			personajeUsando = personajeConMetal;
			personajeConMetal.gameObject.SetActive(false);
		}
		if(codigo == "Metal")
		{
			personajeConMetal.position = personajeUsando.position;
			personajeConMetal.gameObject.SetActive(true);
			personajeActual = 2;
		}
		if(codigo == "")
		{
			personajeSinArmadura.position = personajeUsando.position;
			personajeSinArmadura.gameObject.SetActive(true);
			personajeActual = 1;
		}
	}
}

BotonCheckScript

using UnityEngine;
using System.Collections;
public class BotonCheckScript : MonoBehaviour {
	private BoxCollider2D presionar;
	public FuncionesComunesScript funcionesComunes;
	public ItemsUsadosScript itemsUsados;
	public PersonajeScript personaje;
	public Transform inventario;
	public Transform controles;
	void Start () {
		presionar = this.gameObject.GetComponent<BoxCollider2D>();
	}
	// Update is called once per frame
	void Update () {
		tocandoPantalla ();
	}
	private void tocandoPantalla()
	{
		bool presiono = funcionesComunes.contactoCaja (presionar);
		if (presiono) {
			string codigo;
			if(itemsUsados.miniArmadura != null)
				codigo = itemsUsados.miniArmadura.codigo;
			else
				codigo = "";
			personaje.cambiarArmadura(codigo);
			inventario.gameObject.SetActive(false);
			controles.gameObject.SetActive(true);
		}
	}
}

BotonMochilaScript

using UnityEngine;
using System.Collections;
public class BotonMochilaScript : MonoBehaviour {
	private BoxCollider2D presionar;
	public FuncionesComunesScript funcionesComunes;
	public Transform inventario;
	public Transform controles;
	// Use this for initialization
	void Start () {
		presionar = this.gameObject.GetComponent<BoxCollider2D>();
	}
	// Update is called once per frame
	void Update () {
		tocandoPantalla ();
	}
	private void tocandoPantalla()
	{
		bool presiono = funcionesComunes.contactoCaja (presionar);
		if (presiono) {
			inventario.gameObject.SetActive(true);
			controles.gameObject.SetActive(false);
		}
	}
}

BotonBorrarScript

using UnityEngine;
using System.Collections;
public class BotonBorrarScript : MonoBehaviour {
	private BoxCollider2D presionar;
	public FuncionesComunesScript funcionesComunes;
	public ManejadorEspaciosVaciosScript espaciosVacios;
	// Use this for initialization
	void Start () {
		presionar = this.gameObject.GetComponent<BoxCollider2D>();
	}
	// Update is called once per frame
	void Update () {
		tocandoPantalla ();
	}
	private void tocandoPantalla()
	{
		bool presiono = funcionesComunes.contactoCaja (presionar);
		if (presiono) {
			Transform espVacio = espaciosVacios.espacios [espaciosVacios.espacioElegido];
			if(espVacio != null)
			{
				ItemsScript[] todosHijos = espVacio.GetComponentsInChildren<ItemsScript>();
				for(int i = 0; i < todosHijos.Length; i++)
				{
					if(todosHijos[i] != null)
						todosHijos[i].destruir();
				}
				espaciosVacios.espaciosOcupados[espaciosVacios.espacioElegido] = false;
			}
		}
	}
}

Suerte!

0 0 votes
Article Rating
Subscribe
Notify of
guest
6 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Rafael Florez

Me refiero a la relacion de aspecto. Antes yo usaba AspectUtility.cs para que el juego se adapte a cada pantalla de mobiles. Con 4.6 ya no es necesario, mejoran en ese aspecto al igual con los botones para que se adapten y no tener que usar 3D Text

genius org

Amigo creo que usas mal el método Update, supongo lo empezaras a notar mas adelante.

Rafael Florez

Sería posible que hicieras un tutorial de unity 4.6. Sobre los UI Canvas y como corregirlo en viejos proyectos