No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Adquiere por un año todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/año

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

0D
15H
13M
38S
Curso de Introducción a Unity: Scripting

Curso de Introducción a Unity: Scripting

Ruth Margarita García López

Ruth Margarita García López

Propiedades públicas y privadas, [SerializeField], [Header] y [HideInInspector]

5/24
Recursos

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

OPAAA, los objetos serializables son lo que estaba buscando, trato de hacer un juego de rol con unos amigos, y creo que eso nos puede ser muy util, gracias profe ruth

La última parte se vio complicada, más cuando quise hacer el experimento creando un nuevo script y me salió una cantidad de errores de compilación XD… Un poco se parece a la declaración de variables como objetos de lo que vi en Javascript, pero eso debo revisar mejor…

Propiedades públicas y privadas, [SerializeField], [Header] y [HideInInspector]

Al crear un juego, la mayor parte del tiempo vamos a estar configurando cosas, en lo que destacaran el uso de las variables públicas y privadas y los atributos.

Variable públicas

- Van al principio de la clase

Son un poco claustrofóbicas…

- No van a entrar a ningún método, (pero siguen dentro de la clase).
- Se ven en el Inspector
<h5>Por qué usarlas?</h5>
  • Son importantes en la interacción con otros Objs. ya que otros scripts/componentes las pueden ver y modificar.

Variables privadas y protegidas

- No pueden ser vistas (ni modificadas) por otras clases.
- No se ven en el Inspector, a menos que estén decoradas por

Atributos

“suerte de cartelito que escribimos arriba de una variable, aplicándole distintos efectos”

- [SerializeField]

	○ La variable se muestra en el Inspector, aún si es privada.

- [HideInInspector]

	○ La variable no se muestra en el Inspector.

- [Range(n,m)]

	○ El editor nos aplica un slider, desde un valor inicial a un valor final, para modificar la variable.

- [TextArea]

	- Ampliación de un cuadro de texto ("string") para escribir código o líneas de texto largas.

- [Header(“title”)] & [Space (px)]

	- Aplicación de títulos y espacios en el código para maximizar legibilidad en editor.

- [Tooltip(“text”)]

	- Nos permite dejar un texto (tip) que brotará en un cuadro al dejar el cursor sobre la variable decorada.

A escribirrr

<h5>- Sintaxis para declarar variables aplicadas al inspector:</h5>
		_modificadorDeAcceso + tipoDeDato + nombre;_

O sea:

		public bool Checkbox

Nota: sin un modif. de acceso, la variable no aparecerá en el inspector.

Uso de arrays

Si quiero declarar una variable a la que pueda ir añadiendo o quitando valores de forma dinámica y ordenada; por ejemplo para llevar el control de los amigos que gana y pierde un personaje
Me puedo valer de un array, cuya sintaxis en Unity (C#) requiere especificar *esto es un array y este es el tipo de dato que almacenaremos dentro, lo cual se expresa como:

	public string [] amigo;
<h5>¿Y qué pasa si queremos almacenar más información referida a estos amigos (regalos recibidos, por ejemplo)?</h5>
X Crear otro array simplemente no es una buena solución, ya que no estarán conectados entre sí.
  • Para esto se recomienda

    Englobar las propiedades en una Clase nueva

    • agregando la directiva de UnityEngine para poder usar el objeto GameObject en nuestras variables

    • Decorando la clase con [System.Serializable] para que Unity pueda mostrarla en la consola a pesar de no ser un tipo de dato primitivo
      En código:

        Using UnityEngine;
        
        [System.Serializable]
        Public class Amistad {
        	Public string nombre;
        	Public GameObject[] regalos;
      
    <h5>Luego implementamos nuestra clase Amistad en el script, como tipo de dato para un array.</h5>

    Quedaría así:

     	using UnityEngine;
     	using System.Collections;
     	using System.Collections.Generic;
     	
     	Public class ExploradorDeVariables : Monobehaviour {
     		Public Amistad[] amistades;
    

    Ahora, desde el Inspector podemos agregar amigos y darles “regalos” en forma de GameObjects, (con la posibilidad de arrastrarlos desde la Hierarchy).