Cubix

Curso de Unity 3D

21.  
25.  
36.  

1. Creamos la carpeta Prefab.

2. Dentro de la carpeta prefab, creamos el Prefab de un cubo.

3. Dentro del GameManager, creamos la variable pública de tipo GameObject cubePrefab, y arrastramos el prefab del cube sobre dicha variable en el Inspector.

4. Instanciamos un cubo:

Instantiate(cubePrefab, transform.position, Quaternion.identity);

5. Declaramos una constante de con valor 5 llamada size. Utilizamos un bucle for para instanciar los 5 cubos indicados en la variable size. Comprobamos en el panel de jerarquía que los cubos se han creado.

6. Utilizando la siguiente línea:

objetoInstanciado.transform.Translate(Vector3.right * i);

desplazamos hacia la derecha cada uno de los cubos que vamos creando.

7. Anidamos otro bucle for dentro del primer bucle for para generar una pared de cubos.

Para desplazar los cubos, usaremos el siguiente código:

go.transform.Translate(Vector3.right * i+ Vector3.up*j);

8. Anidamos otro tercer bucle for para generar un cubo de cubos.

9. Vamos a cambiar el color de cada uno de los cubos.

go.GetComponent<Renderer>().material.color = Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f);

10. Añadir el código necesario para que aleatoriamente algunos cubos no se dibujen.

11. Vincular todos los cubos a un Empty padre:

go.transform.SetParent(parentCube.transform);

12. Cuando el usuario pulse la tecla “flecha derecha”, rotaremos el cubo hacia la derecha.

Multiplicar por Time.DeltaTime es necesario para que el movimiento se ajuste al reloj en lugar de a la frecuencia de acualización (para que funcione en todos los ordenadores igual).

13. Instanciamos una pelota, le asociamos un RigidBody y la ubicamos en las coordenadas size/2, size+1, size/2.

14. Añadimos una debajo del cubo que es por donde queremos pasar la pelotita. Cuando la pelota colisione contra ella, la plataforma se pintará de verde:

private void OnCollisionEnter(Collision collision){
     if(collision.gameObject.tag == "Finish"){    collision.gameObject.GetComponent().material.color = Color.green;
     }
}

Tenemos los callbacks: OnCollision… y OnTrigger… para detectar colisiones

14. Meter un punto de luz (Light → point light) a la bola.

15. bajamos la iluminación ambiental (Window → Rendering → Lightning Settings → Enviroment Lightining → Intensity Multiplier → 0.05).

16. Vinculamos la camara del juego a la bola. Para que la bola no rote, podemos añadirle unas constraint en su rigidBody. Camera main;

// Start is called before the first frame update
void Start(){
     main = FindObjectOfType();
     main.transform.position = this.transform.position;
     main.transform.SetParent(this.transform);
}

17. Meter un sonido

← Galería de tiro con Unity3D
Flappy Bird con Unity →

Aviso Legal | Política de privacidad