Scripting C# : Properties

By Danilo Giardina, 22 febrero, 2017

Hola a todos hoy les voy a enseñar como utilizar Properties en C#.
Los properties te permiten acceder a una variable privada de otro script , definiendo si solo quieres que sea leída o si también puede ser modificada desde un script externo.

Primero creamos un script C# con el nombre de “PJ”, luego escribimos lo siguiente:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PJ {
    int health = 5;

    public int vida {
        get
        {
            //Debug.Log("internal: "+ health);
            return health;
        }
        set
        {
            health = value;
        }
    }
}

Ahora creamos otros script con el nombre de “GameController” y copiamos lo siguiente:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GameController : MonoBehaviour {
    PJ player = new PJ();
    int health=10;
	// Use this for initialization
	void Start () {
        Debug.Log("gameController:"+health);
        Debug.Log("Pj:" + player.vida);
        player.vida = health;// set
        health = player.vida/2;// get
        Debug.Log("gameController:" + health);
        Debug.Log("Pj:" + player.vida);

    }
}

Bien , lo que deben hacer ahora es arrastras el GameController a un objeto vacío en una escena nueva. Al darle play veran en la consola algo como esto:

  • gameController:10
  • Pj:5
  • gameController:5
  • Pj:10

Como podran ven el valor de gameController se inverte con el de Pj. Para entender esto vamos a explicar que hicimos paso por paso.


Comencemos por el script Pj:

  • Borramos el MonoBehaviour de la clase
  • Creamos una variable privada de tipo entera con el nombre de health ,con un valor asignado de 5.
  • Creamos el properties ( public int vida) significa que es publico , devuelve un entero y su nombre es vida.
  • Recuerden que un properties es una variable por lo cual debe ir en minúsculas y no debe llevar paréntesis.
  • Abrimos y cerramos llaves , dentro de estas definimos el get y set . Cada uno de ellos con sus llaves correspondientes.
  • Dentro de get debe ir el return que es el valor que tiene que devolver, como ya lo habíamos definido arriba debe ser un valor entero , es por eso que devolvemos la variable entera (int) health.
  • Dentro de set debe ir la variable privada a la que estamos accediendo y le asignamos “value” donde esta el valor que fue asignado a vida.

Seguimos por el script GameController:

  • Creamos una variable de tipo Pj (nombre del otro script) con el nombre player y le asignamos una nueva instancia del mismo. Es decir creamos un Pj dentro de la clase GameController. Aunque les recomiendo saber sobre instancias antes de mirar este tutorial.
  • Creamos una variable privada de tipo entera con el nombre de health y le asignamos el valor de 10.
  • En el método Start imprimimos varios mensajes en consola con la sentencia Debug.Log.
  • Asignamos en la linea 12 al properties vida el valor de health de GameController, que en este caso es 10.
  • En la linea 13 asignamos a la variable health de GameController el valor del properties vida dividido 2 , ya que en la linea anterior habíamos cambiado su valor a 10.

Bueno espero que hayan entendido pronto actualizare este post con mas ejemplos de properties , así que no dejen ve verlo.

curso sobre desarrollo de videojuegos en unity

Pulsa en la imagen para ir al curso.

What do you think?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *