Unity#

Logo Unity

Funciones y otros elementos de Unity

Estructura base#

 1using System.Collections;
 2using System.Collections.Generic;
 3using UnityEngine; // unity utiliza su propia libería en cada script
 4
 5public class NewBehaviourScript : MonoBehaviour // también heredan todos de una clase padre
 6{
 7    // Este método es llamado antes de arrancar el juego
 8    void Start()
 9    {
10
11    }
12
13    // Este método se actualiza con cada frame del juego
14    void Update()
15    {
16
17    }
18}

objetos#

Assets#

Los assets son archivos que contienen imágenes, scripts y otro tipo de comportamientos en Unity: - C# Script: Archivo de código que se puede asignar a uno o varios objetos. - Material: aspecto que se le puede asignar a uno o varios objetos. - Physc Material: comportamiento físico que se puede agregar a uno o varios elementos.

En la carpeta assets creamos la siguiente estructura de carpetas: - Materials: carpeta de materiales. - Physc Materials: Materiales de física. - Scenes: Escenarios. - Scripts: archivos de código. - Prefabs: donde se guardan los objetos prefabricados.

Prefabs#

Los prefabs son objetos que se encuentran guardado y preparados en la carpeta de assets. Para crear un prefab solo hay que arrastrar de la jerarquía un objeto a la carpeta prefabs dentro de assets.

Componentes#

Rigidbody#

Componente de física que contiene las siguientes funciones:

  • Mass(masa): establece un valor numérico que indica la cantidad de masa que tiene un objeto.

  • Drag(arrastre): genera un nivel de amortiguación, a más cantidad, más se frenará solo el objeto al moverse y al caer.

  • Angular Drag(ángulo de arrastre): Amortiguación rotacional

  • Use Gravity(usar gravedad): Activa o desactiva la gravedad

  • Is Kinematic (es cinemático): Activa o desactiva física

  • Interpolate (interpolar): Asegura la sincronía de física y animaciones

  • Collition Detection (detector de colisiones)

  • COnstraints (restrinciones): Limita o impide modificaciones en los ejes seleccionados.

Creamos un objeto sphere y le añadimos el siguiente script:

 1using System.Collections;
 2using System.Collections.Generic;
 3using UnityEngine;
 4
 5public class NewBehaviourScript : MonoBehaviour
 6{
 7    public float velocidad = 2f; // establecemos la velocidad
 8    Rigidbody cuerpoRigido; // declaramos un objeto de tipo cuerpo rígido
 9
10    void Start()
11    {
12        // inicializamos el cuerpo rígido recuperando el componente de únity:
13        cuerpoRigido = GetComponent<Rigidbody>();
14    }
15
16    void Update()
17    {
18        // ahora vamos a recuperar movimientos del teclado:
19        float moverVertical = Input.GetAxis("Vertical");
20        float moverHorizontal = Input.GetAxis("Horizontal");
21
22        // vamos a crear movimiento con un vector X,Y,Z siendo la Y nada en este caso:
23        Vector3 movimiento = new Vector3(moverHorizontal, 0f, moverVertical);
24
25        // ahora toca añadir fuerza a la pelota para que responda a los movimientos:
26        cuerpoRigido.AddForce(movimiento * velocidad);
27    }
28}

Colliders#

Son los colisionadores, establecen la forma física no traspasable de un objeto: * Box Collider - cajas * Sphere Collider - Esferas * Mesh Collider - Mallas (objetos irregulares) * Physc Material: acepta un material de tipo física para añadir rebote entre otras cosas. * Capsule Collider - Cápsulas * Terrain - Terreno

Métodos: * Is trigger: convierte al objeto en disparador * Material: Agrega efectos físicos como rebote y brillo metalizado entre otros. * Center: El centor del Collider * Radious: Solo para esferas, establece el radio de contacto del objeto. * Size: excepto esferas, establece el radio de contacto de un objeto.

Triggers#

Son los detonantes (is trigger debe estar activado), el elemento puede perder su física para disparar un evento. * ideal para objetos recolectables.

Prueba a colocar junto a la esfera anterior un cubo al que le asignamos «is trigger» y le añadimos el siguiente script:

 1using System.Collections;
 2using System.Collections.Generic;
 3using UnityEngine;
 4
 5public class NewBehaviourScript1 : MonoBehaviour
 6{
 7    // para activar un trigger usamos este método en lugar de los preestablecidos:
 8    private void OnTriggerEnter(Collider other)
 9    {
10        print("Hola amigo");
11        // destruir el objeto al tocarlo:
12        Destroy(gameObject);
13    }
14
15}

Random#

Junto con Mathf se invoca bastante y existe una versión diferente de esta librería en Unity.

Ejemplo editando el código C# del cubo:

 1using System.Collections;
 2using System.Collections.Generic;
 3using UnityEngine;
 4
 5public class NewBehaviourScript1 : MonoBehaviour
 6{
 7    private void OnTriggerEnter(Collider other)
 8    {
 9        // podemos crear un número aleatorio cada vez que se toque el cubo:
10        float aleatorio = Random.Range(0f, 10f);
11        print(aleatorio);
12    }
13
14}