– El jugador podrá mover la cámara arrastrando el ratón y con las teclas WASD así como con las flechas de dirección.
– El jugador puede crear un cuadro de selección de color verde transparente, que se deberá mantener cuando movamos la cámara, y con las siguientes características:
– Seleccionará los cazas dentro del cuadro, o si hacemos click sobre uno.
– Marcará de color amarillo los cazas seleccionados.
– Se perderá la selección cuando hagamos click.
– Pulsando una tecla de KeepSelection (Shift) se mantendrá la selección anterior.
– Pulsando una tecla de InvertSelection (Control) se mantendrá la selección anterior, pero el cuadro en lugar de seleccionar, deseleccionará.
El editor de scripts por defecto es uno muy feo pero que nos puede servir. No obstante, si tenéis otro mejor que prefiráis usar (como es mi caso), podéis cambiarlo en «Edit -> Preferences…» con la opción «External Script Editor». Al abrir el archivo debemos asegurarnos de que la clase se llame «GameLogicScript» o nos dará un error, ya que debe tener el mismo nombre que el archivo.
Lo primero que vamos a hacer es crear los tres cazas al arrancar. Para eso, vamos a crear un objeto List<GameObject> (se requiere importar la librería «System.Collection.Generic») que guardará los cazas que tenemos, para que podamos trabajar con ellos, y modificaremos la función Start() de modo que quede algo así:
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- public class GameLogicScript : MonoBehaviour
- {
- //Lista de cazas
- List<GameObject> _fighters;
- // Use this for initialization
- void Start ()
- {
- //Inicializamos la lista
- _fighters = new List<GameObject>();
- //Vamos a crear 3 cazas
- GameObject fighter = Resources.Load(«FighterObject»)
- as GameObject;
- GameObject fighter1 = GameObject.Instantiate(fighter,
- new Vector3(831, 1, 961),
- Quaternion.identity) as GameObject;
- GameObject fighter2 = GameObject.Instantiate(fighter,
- new Vector3(841, 1, 961),
- Quaternion.identity) as GameObject;
- GameObject fighter3 = GameObject.Instantiate(fighter,
- new Vector3(851, 1, 961),
- Quaternion.identity) as GameObject;
- //Añadimos los cazas a la lista
- _fighters.Add(fighter1);
- _fighters.Add(fighter2);
- _fighters.Add(fighter3);
- }
- // Update is called once per frame
- void Update ()
- {
- }
- }
Como veis, a la hora de instanciar los cazas, he recogido los valores que ya conocía, y los he separado 10 unidades en X. Sólo he modificado la altura (Y) para que las naves queden justo encima del terreno. Con Quaternion podemos establecer la rotación del objeto, por si quisiéramos ponerlo ladeado. Yo he utilizado la propiedad «Quaternion.identity», que sería lo mismo que instanciar un nuevo Quaternion con todos los valores a 0.
Me encants está sección *O* ,antes daba un poco de programación,nada del otro mundo pero ya se me ha olvidado casi todo T^T
hace un mes o dos colgamos un tutorial más simple para mover un objeto por la pantalla =P
Sí, la verdad es que este tutorial me ha quedado un poquito bastante denso.
Espero que con el código fuente, por lo menos la gente pueda trastear y ver cómo está todo si se pierden en algún punto del tutorial y no les sale ;).
Buenas, estaba trasteando y me he quedado un poco colgado en la primera parte con el script, me da un error en la linea 14
«GameObject fighter = Resources.Load(“FighterObject”)»
Podrias poner de nuevo la fuente de ejemplo para ver como está la jerarquia y despejar mis dudas? Porque da error.
Gracias