Está en la página 1de 5

Unity C#

Los scripts son los componentes de comportamiento (behaviour) en Unity.

CURIOSIDADES

Text.text{get;set;} // La instrucción dentro de las llaves indica que el método


puede usarse para asignar un valor o para recibirlo.
 texto.text = "Holaa"; // Para este ejemplo la instancia texto
recibe la cadena
 velocidad = float.Parse(tiempoInput.text) // velocidad es una
variable que recibe el valor de un cuadro de texto o inputField,
float.Parse se usa para hacer casting.

ACTIVAR Y DESHABILITAR GAMEOBJECTS

public class ActivarDesactivar : MonoBehaviour {

public GameObject esfera;

void Start()
{
esfera = GameObject.Find("Sphere (2)");
}

void Update()
{
if (Input.GetKey(KeyCode.X))
{
esfera.SetActive(false);
}
if (Input.GetKey(KeyCode.Y))
{
esfera.SetActive(true);

// Para que funcione la activación el script debe estar habilitado, es decir,


si se desactiva el objeto en donde esta el script ningun evento va ha
funcionar por ende es necesario copiarlo en un objeto diferente.
} } }

ACTIVAR Y DESACTIVAR COMPONENTES

public class EnableComponents : MonoBehaviour


{
private Light myLight;

void Start()
{
myLight = GetComponent<Light>();
}

void Update()
{
if (Input.GetKeyUp(KeyCode.Space))
{
myLight.enabled = !myLight.enabled; // Funciona como un toggle o
conmutador
myLight.enabled = true or false; // Activa o desactiva el estado
}
}
}

COMUNICACIÓN ENTRE SCRIPTS

Script 1

public class Variable1 : MonoBehaviour

public int valor = 11;

Script 2

public class Variable2 : MonoBehaviour

// El objeto debe ser instanciado dentro de la función donde se va trabajar.

Variable1 otro = GameObject.Find("Cylinder").GetComponent<Variable1>();

Se puede modificar el valor (otro.valor += 1;)

Se puede leer el valor (Debug.Log(otro.valor);)

// Comunicación entre objetos y scripts

MenuAdmin admin = GameObject.Find("MenuAdmin").GetComponent<MenuAdmin>();

EVENTOS

void Awake () { // Esta función es la primera que se ejecuta, incluso antes del
Start.
}

void Start () { // Esta función se ejecuta antes del primer cuadro o física que
ejecute el render.
}

void Update () { // Evento de actualización, esta función se actualiza cada frame,


se ejecuta en cada cuadro.
}

void FixedUpdate () { // Evento de actualización, esta función se actualiza en un


intervalo de tiempo regular, cada segundo o algo así, es una buena práctica usarla a
la hora de intervenir las físicas de un objeto.
}
void OnMouseDown() { //Esta función es llamada cuando el usuario selecciona el
objeto asociado; se ejecuta una sola vez.
}

void OnMouseUp() { //Esta función se llama cuando el usuario deja de seleccionar el


objeto asociado; se ejecuta una sola vez.
}

void OnCollisionEnter(Collision obj) // obj es el objeto con el cual se colisiona


{
if (obj.gameObject.name == "Cube") // Se identifica por el nombre
{
Destroy(obj.gameObject);
}
}

CLASES

GameObject

Hace referencia al objeto donde está el scripts

 Transform: Modifica la posición del objeto en el espacio.


o Rotate : Gira el objeto en los ejes x y(altura) z
 gameObject.transform.Rotate(1,0,0);
o Translate : Mueve el objeto en dirección de x y z
 gameObject.transform.Translate(2, 0, 0);

Time

 deltaTime : Al tener esta instrucción Translate(2, 0, 0), Le indicamos a


Unity que mueva el objeto 2 frames/segundo a lo largo del eje x, dado que los
frames no son contantes puede moverse a diferentes velocidades, lo que hace
que el movimiento no sea fluido; esta instrucción le entrega fluidez al
movimiento dándole un cambio por segundo.
 gameObject.transform.Translate(Time.deltaTime*2, 0, 0);

Input

Esta clase contiene todo lo relacionado con las entradas del usuario, como comandos
de teclado de un joystick, entre otros. La mayoria de funciones tiene combinación
con Up y Down que al igual que en los eventos OnMouseDown o Up funcionan para
indicar acciones según el usuario presione o deje de presionar el comando.

 GetKey : Esta función entrega “true” si el botón indicado en el parámetro


esta siendo presionado.
 if (Input.GetKey("x")) {
gameObject.transform.Translate(0, Time.deltaTime * 2, 0);
}
En el ejemplo podemos apreciar que cada vez que se presiona la
tecla x, el gameObject u objeto al que esta asociado el script se
moverá hacia arriba.

Para el parámetro de GetKey también existe la posibilidad de usar


la instrucción KeyCode.”Tecla”, la cual desprende todas las
opciones disponibles en el teclado. GetKey(KeyCode.Space)
 GetMouseButtonDown : Esta función entrega “true” si el mouse es presionado en
el click derecho(0), izquierdo(1) o centro, scroll(2).
 if (Input.GetMouseButtonDown(0))

RigidBody

Esta clase controla la posición de los objetos de acuerdo a la física.

 public Rigidbody cuerpo;


Es necesario instanciar la clase e inicializarla con los
componentes del rigidbody del objeto.

 void Start () {
cuerpo = GetComponent<Rigidbody>();
}
Puede que el getter obtenga todos los datos del rigidbody que
se pone al objeto desde el inspector, como la masa, gravedad,
entre otras.

 AddForce : Esta función aplica una fuerza a lo largo de los ejes x y z.


 cuerpo.AddForce(0, 100, 0);
SceneManager

Esta clase gestiona las escenas en tiempo de ejecución para usarla es necesario
importar la librería UnityEngine.SceneManagement

 LoadScene: Esta función carga la escena indicada por su nombre o índice.


 public void cargarEscena(string escena)
{
SceneManager.LoadScene(escena);
}// El parámetro debe ser un String o el índice.

Métodos

 Temporizador

public void temporizador(float tiempo)


{
Debug.Log("temporizador");
while (tiempo > 0)
{
Debug.Log("while");
tiempo -= Time.deltaTime;
}
}

 Random

valor = Random.Range(0, 2);

El valor va desde cero hasta 2 incluyendo ambos extremos


TUTOS

- AURA
https://www.youtube.com/watch?v=uwYzHcVqiKQ

- PLAYERPREFS
https://personales.unican.es/blancobc/apuntesvj/prog/almacenamiento.html

También podría gustarte