Unity
Contents
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}