Durante esta serie de tutoriales de tres partes que vamos a crear un completo Hyper Casual juego para Android. El término “hiper informal” es un término relativamente nuevo utilizado para los juegos sencillos pero adictivos que tienen el arte minimalista y los colores brillantes. Si usted ha estado prestando atención a las tiendas de aplicaciones, verá muchos juegos casuales hiper alto de las listas.

La primera parte del tutorial cubrirá el proyecto, el jugador y configuración de la cámara. Vamos a crear los sprites de este juego de la derecha dentro del editor de Unity, y se deberá adaptar la configuración del proyecto para que coincidan con lo que se necesita para un juego jugable plataforma móvil Android en el retrato de 480 x 800 de resolución.

Para asegurarse de que usted será capaz de seguir de manera efectiva junto con este tutorial usted debe ser cómodo con:


  • lenguaje C # de programación
  • editor de Unity
  • Vector2 y Vector3
  • Creación de carpetas, la creación de casas prefabricadas, sumar y unir secuencias de comandos para los objetos del juego, añadiendo componentes, tales como la creación rigidbodies, escena, escenas y cambiar el nombre de los objetos del juego, la creación de etiquetas, y la adición de los colisionadores de gameobjects.
  • La comprensión de las diferencias entre Update, FixedUpdate y funciones LateUpdate.
  • Unidad Remota 5 (Para la prueba de nuestro juego para Android en un dispositivo móvil)

    Tabla de contenidos

    Fuente archivos de código

    Puede descargar los archivos de código fuente tutorial aquí. Todos los archivos de proyecto se encuentran en la carpeta principal. La carpeta contiene archivos activos intermedios adicionales que se utilizaron durante el proceso de creación de los sprites del juego.

    Antes de continuar con este tutorial seguir adelante y asegurarse de que está utilizando la versión Unidad 2018.2.13f1. Es posible utilizar una versión anterior de la Unidad, pero es posible que observe diferencias entre la versión utilizada en este tutorial y su versión, y esto hará que sea difícil de seguir a lo largo de manera efectiva. Seguir adelante y crear un nuevo proyecto en 2D, puede nombrar el proyecto lo que quiera. Cambiar la configuración de la plataforma de construcción para Android, en general, la Unidad será por defecto la configuración de las ventanas de construcción en un nuevo proyecto.

    No se pierda! extremos de la oferta en

    • Accede a los más de 200 cursos
    • Nuevos cursos añadió mensual
    • Cancelar en cualquier momento
    • Los certificados de terminación

      ACCESO ahora

      Carpeta de instalación y creación de escena

      Crear 3 nuevas carpetas en el activo de la ficha del proyecto, nombrarlos: Sprites, guiones y escenas (Alternativamente, puede nombrarlos con lo que deseas, pero es una práctica común para una buena organización para mantener las convenciones de nomenclatura simple y tan obvio que sabes justo donde para navegar cuando se busca algo en sus proyectos). Si está utilizando la versión Unidad 2018.2.13f1, se habrán dado cuenta de que ya existe una carpeta en la sección de los activos de las escenas pestaña proyecto de título. La unidad ahora crea esta carpeta y una escena llamada “Escena de la muestra” con cualquier nuevo proyecto que se crea. Seguir adelante y cambiar el nombre del nombre de la escena de “juego”. Guardar la escena y del proyecto.

      Configuración de la cámara

      En la pestaña Jerarquía seleccione la cámara principal y en el cambio de pestaña inspector de la siguiente:. Color del fondo a un color negro o gris, ajustado a la proyección ortográfica (vista de arriba abajo), y el tamaño a 10


      Vamos a escribir algo de código más adelante en esta serie de tutoriales donde vamos a cambiar el color de fondo para que cambie durante el juego. Por lo tanto, el color inicial del fondo realmente no es tan importante derecho ahora.

      Reproductor de Sprite Creación y configuración

      Vaya a la carpeta de Sprites que ya hemos creado y haga clic derecho, seleccione Crear> Sprites> Círculo. Este círculo representará a nuestro jugador. Vaya por delante y arrastra el jugador círculo en la pestaña Jerarquía, y cambiarle el nombre a “Jugador”. Hay algunas opciones de configuración en el inspector tenemos que ajustar para terminar la configuración inicial del jugador en la escena del juego. En la ventana de inspección en el componente transformar ajustar la posición Y a -8 y cambiar la escala en la que X e Y a 0,5. Puede dejar el color Sprite en blanco por ahora. Añadir un nuevo guión al jugador objeto en el inspector y el nombre de “Jugador”. Este script va a controlar todo el comportamiento de nuestro jugador.


      El script jugador
      guión

      abrir el reproductor en el editor de código, este tutorial utiliza Visual Studio. Hay que añadir un poco de comportamiento del movimiento a nuestro jugador. Seguir adelante y crear una función llamada “PlayerMovement.” Crear una función FixedUpdate bajo la función de actualización que ya está en el guión. Vamos a llamar a la función “PlayerMovement” en FixedUpdate. También tenemos que crear una variable llamada ángulo de flotación y establezca su valor inicial a 0 y crear una variable int llamado xSpeed ​​y establecer el valor inicial de 3 .. Vamos a añadir el código siguiente para controlar el reproductor de movimiento en el eje X y también controlar el ángulo del jugador a medida que avanza. Esencialmente vamos a terminar con el jugador se mueve hacia atrás y adelante en el eje X (horizontal), puede seguir adelante y guardar el guión y volver a entrar en el Editor de la Unidad y la exitosa obra y asegurarse de que todo funciona según lo previsto. Más adelante estaremos controlando el movimiento de los jugadores por el tacto, por lo que el jugador se moverá hacia arriba en un ángulo dependiendo de donde el jugador toca la pantalla del juego en el dispositivo móvil. Guardar la escena y del proyecto.
      ángulo de flotación = 0; int xSpeed ​​= 3; FixedUpdate private void () {PlayerMovement (); } Void PlayerMovement () {pos vector2 = transform.position; pos.x = Mathf.Cos (ángulo) * 5; transform.position = pos; ángulo de + = Time.deltaTime * xSpeed; } 12345678910111213141516171819floatangle = 0; intxSpeed ​​= 3; privatevoidFixedUpdate () {PlayerMovement ();} voidPlayerMovement () {pos vector2 = transform.position; pos.x = Mathf.Cos (ángulo) * 5; transform.position = pos; ángulo de + = Time.deltaTime * xSpeed;}

      Ahora vamos a crear la función “PlayerInput”. Crear esta función justo debajo de la función de movimiento del jugador. Esta función obtendrá la entrada de jugadores de toque y luego pasar a nuestro jugador (el círculo) en la pantalla hacia arriba, siempre y cuando el jugador toca la pantalla. Así que, mientras el jugador sostiene el dedo en la pantalla del juego en el dispositivo móvil al jugador objeto se moverá hacia arriba. También tenemos que crear una variable llamada ySpeed ​​y establezca su valor inicial a 30. Tenemos que añadir fuerza a nuestra rigidboody2D con el fin de conseguir que el jugador se mueva hacia arriba como se toca la pantalla. Tendremos que crear una variable para nuestro componente Rigidbody2D y el nombre PlayerRigi. Desde nuestro objeto jugador pronto tendrá un rigidbody2d unido a él, y vamos a mover el objeto a través del reproductor rigibody necesitamos para crear la variable y luego referencia para que en la función de “Awake”. Puede crear la función de “Awake” está justo debajo de declaraciones de variables.
      Rigidbody2D PlayerRigi; ángulo de flotación = 0; int xSpeed ​​= 3; int ySpeed ​​= 30; void Awake () {PlayerRigi = getComponent (); } Privada FixedUpdate void () {PlayerInput (); PlayerMovement (); } Void PlayerMovement () {pos vector2 = transform.position; pos.x = Mathf.Cos (ángulo) * 5; transform.position = pos; ángulo de + = Time.deltaTime * xSpeed; } Void PlayerInput () {if (Input.GetMouseButton (0)) {PlayerRigi.AddForce (nueva Vector2 (0, ySpeed)); } Else {if (PlayerRigi.velocity.y> 0) {PlayerRigi.AddForce (nueva Vector2 (0, -ySpeed)); } Else {PlayerRigi.velocity = nuevo Vector2 (PlayerRigi.velocity.x, 0); }}} 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051Rigidbody2D PlayerRigi; floatangle = 0; intxSpeed ​​= 3; intySpeed ​​= 30; voidAwake () {PlayerRigi = getComponent ();} privatevoidFixedUpdate () {PlayerInput (); PlayerMovement ();} voidPlayerMovement () {Vector2 pos = transform.position; pos.x = Mathf.Cos (ángulo) * 5; transform.position = pos; ángulo de + = Time.deltaTime * xSpeed;} voidPlayerInput () {if (Input.GetMouseButton (0)) {PlayerRigi. AddForce (newVector2 (0, ySpeed));} else {if (PlayerRigi.velocity.y> 0) {PlayerRigi.AddForce (newVector2 (0, -ySpeed));} else {PlayerRigi.velocity = newVector2 (PlayerRigi.velocity. x, 0);}}}

      Guardar este script. Volver atrás en el Editor de la Unidad y poner a prueba de código nuevo para asegurarse de que el jugador en efecto, se mueven hacia arriba como el botón izquierdo del ratón se mantiene presionado. Tenga en cuenta que si se prueba en el PC le será manteniendo pulsado el botón izquierdo del ratón, pero si conecta su dispositivo móvil para el Editor de la Unidad a través de la Unidad Remota 5 a prueba de esa manera se le mantenga el dedo sobre la pantalla para conseguir la el jugador se mueva hacia arriba, y el jugador objeto debe continuar moviéndose hacia arriba mientras mantiene el dedo hacia abajo o pulse el botón izquierdo del ratón hacia abajo.

      crear y adjuntar un rastro Procesador a nuestro jugador

      Ahora que tenemos son objeto jugador del juego en movimiento y responder a la entrada del jugador vamos a crear y adjuntar un componente pista de procesador para el jugador. Este procesador de ruta se dará clase de objeto jugador del juego en busca de una ola tipo de efecto detrás de él a medida que avanza en la escena del juego.

      Haga clic en el reproductor de objeto en la pestaña Jerarquía y haga clic en Agregar componentes y en la barra de búsqueda Tipo de pista de render. Elija el componente rastro de render. Va a ajustar los siguientes ajustes en el componente procesador rastro en la ventana de inspección: Materiales, haga clic en la flecha al lado de él, y cambiar la sección elemento de 0 a sprites-predeterminado. Ajustar el tiempo de 0,5.


      Ahora haga clic en el cuadro de entrada anchura y cambiar el valor a 0,5. Y utilizando el ratón arrastrar los diamantes rojos hacia abajo para que se vea como la siguiente imagen.


      Ahora vamos a ajustar el color y alfa ajustes del procesador de ruta, así que haga clic en el componente de color en el componente rastro de render en la ventana de inspección, y otra ventana pop-up llamado el Editor de degradado.


      Ahora se haga clic en la pestaña en la esquina superior derecha del editor de gradiente. Cambiar el porcentaje de Localización de 58,2% y el Alfa a 0. Haga clic en la pestaña gris en la esquina superior izquierda del Editor de degradado y ajuste la configuración de Alfa 100.


      Ahora seguir adelante y golpeó el botón de reproducción en el Editor de la Unidad y la prueba de nuestra nueva pista de render spiffy.


      Configuración de la cámara para seguir a nuestro jugador

      Ahora necesita para conseguir nuestra cámara para seguir constantemente el jugador, ya que se están moviendo. Este juego casual Hyper no estaría completo si el jugador no podía ver dónde iban a evitar los obstáculos que van a crear en breve. Con el fin de no hacer este juego tan difícil, tenemos que incluir un desplazamiento Y en la cámara para que el jugador puede ver un poco por delante de sí mismos, ya que jugar a un género de “listo” a sí mismos y ser capaz de moverse a la derecha momento para evitar los obstáculos por delante.

      Haga clic en la cámara principal en la pestaña Jerarquía, y añadir un nuevo componente de secuencia de comandos con el nombre “CamFollow.” Abra la secuencia de comandos, y vamos a empezar a escribir el código que necesitamos para conseguir esta cámara siguiendo nuestro reproductor correctamente.

      Hay que declarar dos variables: la primera es la transformación del jugador, se puede llamar así playerTransform y el segundo es para el desplazamiento, hacen de este un flotador público (Por lo que podemos acceder a él en el inspector) y lo llaman “neutralizar”.
      Transformar privada playerTransform; flotación pública compensado; 12privateTransform playerTransform; publicfloatoffset;

      Ahora necesita crear una etiqueta para nuestro jugador y la etiqueta del jugador, ya que vamos a conseguir referencia a la Transformación del jugador en la función de arranque. Recuerde, las etiquetas son sensibles a mayúsculas en la Unidad así que asegúrese de que el usuario escribe correctamente.


      Una vez que tenga el jugador del juego de objetos etiquetados como jugador, seguir adelante y obtener referencia al reproductor transformar en la función de arranque; vamos a utilizar el FindGameObjectWithTag ( “Jugador”) para hacerlo en la función de inicio (Tenga en cuenta aquí que usted escriba FindGameObjectWithTag y no FindGameObjectsWithTag, tenemos un solo jugador en nuestra escena).
      Inicio private void () {playerTransform = GameObject.FindGameObjectWithTag ( «Jugador») transformar.; } 1234privatevoidStart () {playerTransform = GameObject.FindGameObjectWithTag ( «Jugador») transformar;.}

      Ahora tenemos que crear una función “LateUpdate” por debajo de la función de arranque. ¿Por qué utilizamos LateUpdate, usted puede pedir? Como nos estamos moviendo el jugador en FixedUpdate (FixedUpdate se llama cada frecuencia de imagen fija) en el guión jugador estamos utilizando LateUpdate de manera que no conseguimos “desigual” movimiento de la cámara, y desde LateUpdate se llama después de FixedUpdate y ahí es donde el jugador el movimiento se está manejando, el movimiento del jugador ya está calculado para que tengamos datos más precisos sobre dónde se mueven nuestra cámara para seguir el jugador con mayor precisión.

      Dentro de la función LateUpdate la posición de la cámara actual tiene que ser almacenado en una variable temporal, lo llaman Vector3 temperatura y la puso a la igualdad de transform.position. Este script está asociado a nuestra cámara por lo que necesitamos para conseguir transform.position de la cámara. Entonces tenemos que establecer la posición Y de la cámara para igualar la posición Y del jugador. A continuación, agregue el valor de desplazamiento a la posición Y de cámara temporal. A continuación, establezca la posición temporal de la cámara a la posición actual de la cámara.
      LateUpdate private void () {temp = Vector3 transform.position; temp.y = playerTransform.position.y; temp.y + = offset; transform.position = temp; } 12345678910privatevoidLateUpdate () {temp = Vector3 transform.position; temp.y = playerTransform.position.y; temp.y + = offset; transform.position = temp;}

      Guardar la secuencia de comandos, e ir prueba a cabo la funcionalidad en el Editor de la unidad pulsando el botón de reproducción. Debería ver que nuestra cámara en la escena está ahora sin problemas siguiendo nuestro jugador como el objeto del juego se mueve hacia arriba. Si hace clic en el objeto cámara en la Jerarquía se puede ver el valor en el componente de transformar aumentar a medida que la cámara sigue al objeto jugador.

      A partir de ahora tenemos nuestro jugador en movimiento, la cámara siguiendo nuestro jugador sin problemas, de entrada jugador está siendo tomada en, y el objeto del jugador del juego tiene un procesador rastro poco después spiffy detrás de él mientras se mueve. Se trata de una serie de tutoriales en tres partes, en la segunda parte vamos a hacer frente a los primeros obstáculos que el jugador tendrá que evitar, que se encargará de la colisión de los obstáculos y el jugador, que llevan la cuenta y visualizarla, y vamos a trabajar en el gestor de juego.

      Mensajes relacionados

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *