Puede acceder al curso completo aquí: Battle Royale – Proyectos multijugador

Tabla de contenidos

Parte 1

Estructura de carpetas

Empecemos estableciendo cabo estructura de carpetas y escenas de 2.


  • Materiales
  • Modelos
  • fotón
  • Prefabs
  • Recursos
  • Escenas
  • Scripts
  • Texturas

    Escena Menú

    En nuestro menú escena, vamos a configurar la cámara para cuando hacemos la interfaz de usuario del menú en una lección posterior.


    • Establecer las banderas claras a color sólido
    • establecer el fondo a un color verde-azul
    • Establecer la proyección ortográfica a

      Inspector de la Unidad para la cámara principal

      Juego Escena

      En nuestro escena juego, vamos a configurar nuestro mapa. En primer lugar, vamos a arrastrar en el modelo Terreno.


      • Crear un objeto de juego vacío llamado _MAP y arrastre el terreno en el que un niño de esa
      • establecer la posición a 0
      • Establecer la escala a 10
      • Crear un nuevo material llamado Terreno y aplicarlo al modelo de terreno
      • Añadir un componente de malla Colisionador al terreno

        escena Unidad con terreno verde mesh añadió

        Usted puede notar que las sombras son bastante oscuras. Para solucionar esto podemos ir a la Iluminación pantalla ( Ventana> Rendering> Iluminación ) y haga clic en el botón Generar Iluminación en la parte inferior. < / p>

        Inspector de la Unidad de iluminación seleccionada con Generar

        Edificio nuestro mapa

        Ahora vamos a crear las diversas estructuras y ponerlas alrededor de nuestro mapa. Vamos a empezar arrastrando en el Edificio modelo. Al igual que con el terreno, podemos crear un nuevo material y aplicarlo al modelo.

        En este momento sería capaz de caminar a través de las paredes. Así que lo que tenemos que hacer, es añadir un Mesh Colisionador componente. Esto hará que un colisionador personalizada para que coincida con las dimensiones de la malla.

        componente de la Unidad de malla Colisionador

        Por último, podemos guardarlo en nuestro carpeta Prefabs tanto a su uso posterior, y asegurarse de que se aplican todos los cambios a todas las instancias.

        La unidad de construcción prefabricadas en activos

        Haga lo mismo para el Barrera y Plataforma los modelos.

        escena Unidad con barrera y la plataforma añadido

        Por último, se puede dar la vuelta y poblar el mapa con nuestras estructuras.

        escena de la Unidad de Mapa Battle Royale

        En la siguiente lección, vamos a empezar a crear nuestro gestor de la red.

        Parte 2

        CameraController escritura

        Crear un nuevo guión C # llamado CameraController y adjuntarlo a la cámara principal. En esta lección, sólo va a configurar la funcionalidad de la cámara espectador. Cuando creamos nuestro controlador de jugador, nosotros haremos el resto. En primer lugar es nuestras variables.
        [Encabezado ( «Sensibilidad Look»)] flotación pública sensX; flotación pública Sensy; [Encabezado ( «fijación»)] flotación pública MINY; flotación pública maxY; [Encabezado ( «Espectador»)] flotación pública spectatorMoveSpeed; flotador privada rotx; flotador privada ROTY; private bool isSpectator; 123456789101112131415 [Encabezado ( «Look sensibilidad «)] publicfloatsensX; publicfloatsensY; [encabezado (» fijación «]) publicfloatminY; publicfloatmaxY; [encabezado (» Espectador «)] publicfloatspectatorMoveSpeed; privatefloatrotX; privatefloatrotY; privateboolisSpectator;

        lo primero que queremos hacer es bloquear y ocultar el cursor del ratón en el Inicio función.
        void Start () {// bloquear el cursor a la mitad de la pantalla Cursor.lockState = CursorLockMode.Locked;} 12345voidStart () {// bloquear el cursor a la mitad de la screenCursor.lockState = CursorLockMode.Locked;}

        en realidad, el control de la entrada y aplicarlo a nuestra rotación, que vamos a hacer que el interior de la función fuerte LateUpdate . La razón de esto, es que lo hace en el Actualizar función, puede causar la trepidación.
        LateUpdate vacío () {}

        En primer lugar, vamos a tener en nuestras entradas de ratón.
        // obtener el movimiento del ratón inputsrotX + = Input.GetAxis ( «Mouse X») * sensX; ROTY + = Input.GetAxis ( «Mouse Y») * Sensy; 123 // obtener el movimiento del ratón inputsrotX + = Input.GetAxis (» ratón X «) * sensX; ROTY + = Input.GetAxis (» Mouse Y «) * Sensy;.

        Entonces podemos sujetar la rotación vertical
        // abrazadera vertical rotationrotY = Mathf.Clamp (ROTY, miny, maxY); // 12 de sujeción del rotationrotY verticales = Mathf.Clamp (ROTY, miny, maxY);

        Para la cámara espectador, vamos a ser capaz de mirar a su alrededor, así como en movimiento con el teclado.
        // estamos spectating si (isSpectator) {// girar la leva verticalmente transform.rotation = Quaternion.Euler (-rotY, rotx, 0); // movimiento del flotador x = Input.GetAxis ( «horizontal»); flotar z = Input.GetAxis ( «vertical»); flotar y = 0; si (Input.GetKey (KeyCode.E)) y = 1; else if (Input.GetKey (KeyCode.Q)) y = -1; Vector3 dir = transform.right * x + transform.up * y + transform.forward * z; transform.position + = dir * * spectatorMoveSpeed ​​Time.deltaTime;} else {} // 1234567891011121314151617181920212223 estamos spectating si (isSpectator) {// girar la leva = verticallytransform.rotation Quaternion.Euler (-rotY, rotx, 0); // movementfloatx = Input.GetAxis ( «horizontal»); floatz = Input.GetAxis ( «vertical»); floaty = 0; si (Input.GetKey (KeyCode.E)) y = 1; elseif (Input.GetKey (KeyCode .Q)) y = -1; Vector3 dir = transform.right * x + transform.up * y + transform.forward * z; transform.position + = dir * spectatorMoveSpeed ​​* Time.deltaTime;} else {}

        Volver en el editor, podemos rellenar los valores.


        • SensX = 10
        • Sensy = 10
        • MinY = -90
        • MAXY = 90
        • SpectatorMove Peed = 10

          Transcripción 1

          Hola a todos y bienvenidos al curso. Mi nombre es Daniel Buckley y estaré instructor. Vamos a echar un vistazo a lo que vamos a hacer.

          Vamos a ser la creación de un multijugador, 3D, juego de Battle Royale. Aquí está un ejemplo de dos jugadores que están jugando el juego. El jugador a la derecha, se puede ver, se puede matar al jugador de la izquierda, y una vez que lo hace, él es el último jugador vivo y gana el juego. Esto puede ofrecer a tantos jugadores como desee. Sólo vamos a prueba a cabo con alrededor de dos o tres, pero como se puede ver, tenemos un nivel aquí y también tenemos un campo de fuerza en el fondo que se cierra en.

          Para este proyecto, vamos a utilizar la Unidad de fotones redes. Se trata de una estructura de la red libre que es muy útil y muy popular dentro de la Unidad. Esto nos va a permitir a los servidores de conexión, crear salas, tienen navegadores de presión, y enviar mensajes entre sí para crear un juego multijugador completamente de trabajo.

          Así que una de las primeras cosas que vamos a crear es el controlador de jugador. Esto es lo que va a controlar. Usted será capaz de mover, saltar, disparar, curar el momento de recoger un paquete de salud, y añadir munición momento de recoger un paquete de munición. Cuando un jugador es golpeado por una bala, que asumen el daño; y cuando sus alcances cero de salud, que van a morir y la cámara se convertirán en realidad una cámara espectador para a continuación, será capaz de volar por el mapa y ver el resto de jugadores mientras juegan el juego.

          También tendrá camionetas, la salud y munición paquetes, que el jugador puede encontrar por el mapa, y al igual que cualquier juego de Battle Royale, tenemos un campo de fuerza que va a encapsular los jugadores y forzarlos en áreas cada vez más pequeñas en el mapa. Esto puede dañar el jugador cada segundo más o menos mientras están fuera del campo de fuerza, y se encogerá cada cierto metros cada fulano de tal segundos. Este es un campo de fuerza muy personalizable que va a crear.

          Una de las cosas también vamos a crear es un sistema de lobby y el menú. Los jugadores pueden unirse a un juego y esperar en el vestíbulo antes de comenzar. A la izquierda está nuestro navegador vestíbulo. Cuando un jugador crea un juego, los jugadores podrán encontrar en el navegador vestíbulo. Como se puede ver, tiene el nombre de la sala, así como el número de jugadores se encuentran actualmente en él, y luego a la derecha tenemos el vestíbulo real. Esto mostrará toda la lista de jugadores que están en la sala, así como el nombre de la sala, y va a permitir que el anfitrión comience el juego siempre que lo deseen.

          Para ello, vamos a utilizar el sistema de interfaz de usuario de la Unidad. A la izquierda es lo que la interfaz de usuario del juego se verá así. Vamos a utilizar los deslizadores de la barra de salud, texto para todas las estadísticas e incluso una imagen de punto de mira. A la derecha tenemos la misma cosa. Tenemos, en esta ocasión, también una barra de desplazamiento. Vamos a aprender cómo utilizar los bastidores de desplazamiento y el establecimiento de todo eso para crear un buscador de servidores dinámico, así por lo que puede actualizar constantemente al hacer clic en el botón de actualización.

          Así, ZENVA es una academia de aprendizaje en línea con más de 400.000 estudiantes. Contamos con una amplia gama de cursos para las personas que están empezando o para personas que sólo quieren aprender algo nuevo. Nuestros cursos son también muy versátil. Puede verlas en cualquier lugar y en cualquier momento. También hay resúmenes de lecciones para que pueda optar por seguir adelante y ver los vídeos o incluso leer los cursos y hemos incluido los archivos de proyecto. Puede crear el proyecto que le apetezca. Ahora, con todo esto dicho, vamos a empezar a trabajar en nuestro proyecto.

          Transcripción 2

          Bienvenido de vuelta, todo el mundo! En esta lección, vamos a ser la creación de nuestro proyecto, y en primer lugar, nuestra estructura de archivo de proyecto. A continuación, vamos a seguir adelante y configurar cada uno de nuestras escenas.

          Así que, para empezar, vamos a crear nuestras carpetas. Ya tenemos nuestro fotón y escenas carpeta aquí. Así que vamos a crear otra carpeta, y éste va a ser llamado Prefabs. Ahora, aquí es donde vamos a almacenar todas nuestras diferentes casas prefabricadas que vamos a utilizar. También vamos a hacer una carpeta llamada Materiales, para almacenar nuestros materiales, y luego otra carpeta para nuestros modelos.

          Este proyecto también viene con algunos archivos incluidos y algunos de los modelos que vamos a utilizar. Por lo tanto, estos modelos son el AmmoBox, Barrera, Edificio, fuerza de campo, paquete de salud, la plataforma y el terreno. Por lo tanto, sólo voy a arrastrar los de aquí.

          Además de eso, también se quiere crear otra carpeta aquí. Esta carpeta es que va a ser llamados nuestros guiones y aquí es donde vamos a estar almacenando todos nuestros diferentes guiones que vamos a estar creando y luego otra carpeta para los recursos. Y en la carpeta de recursos, voy a entrar en más detalles sobre esto más adelante, pero, aquí es donde tenemos que poner las casas prefabricadas que desea crear una instancia en la red con fotones. Voy a entrar en esto con más detalle más adelante, cuando realmente empezamos a crear instancias de ellos, pero por ahora, vamos a crear nuestro siguiente carpeta, y esta carpeta va a ser llamados texturas.

          Ahora, la única textura realmente los vamos a estar teniendo que va a ser nuestro Punto de mira, que es otro de los activos incluidos en los archivos del proyecto, lo que sólo puede arrastrar esa. Y por defecto, vamos en realidad sólo lo configuran en este momento, vamos a hacer clic en este punto de mira aquí, y tenemos que cambiar el tipo de textura por defecto a Sprite, 2D y la interfaz de usuario. Y haga clic en aplicar, como tal. Y eso es todo lo que tenemos que hacer. Y eso es todo por las carpetas.

          Ahora, vamos a entrar en nuestra carpeta de escenas, y queremos crear dos nuevas escenas. La primera escena que queremos crear va a ser nuestra escena menú, que va a ser donde podemos crear grupos de presión, unirse a las salas, y luego iniciar el juego. Y luego queremos que nuestro siguiente escena a ser el juego real. Y aquí es donde toda la acción se va a tomar su lugar.

          Y vamos a abrir realmente la escena del menú en este momento y en el interior de aquí, podemos ir a la vista del juego, echar un vistazo. Vamos a la creación efectiva de la cámara, así en este momento. Así que vamos a hacer clic en la cámara principal, y que quieren cambiar su proyección de perspectiva a ortográfica. La razón de esto se debe a que ya estamos trabajando con la interfaz de usuario y 2D aspectos en esta escena, que realmente no necesita profundidad, porque no estamos tratando de captura de la distancia de objetos 3D. Así que podemos configurarlo para que ortográfico para que sea mucho más fácil, y de hecho, vamos a cambiar el fondo, ya que realmente no queremos que este fondo palco para un menú. Entonces, ¿qué es lo que podemos hacer clic en borrar los indicadores de aquí y de que el cambio de SkyBox de color sólido. Y a continuación, este color se puede cambiar aquí, y vamos a cambiar esto a una especie, de color azul verdoso. Algo como esto.

          De acuerdo, y con ese hecho, vamos ahora, salvo el y entra en una escena de juego en el que vamos a crear nuestro nivel. Así, a primera hora, vamos a nuestra carpeta de modelos, y nos quieren arrastrar en el modelo de terreno aquí en la escena. Ahora bien, no tiene la textura en él por el momento, pero antes de hacer eso, vamos a set-up en realidad la jerarquía aquí un poco.

          Vamos botón derecho del ratón y van Crear vacío y vamos a llamar a éste, vamos a cero esto, vamos a llamar a éste _MAP. Ahora, esto es sólo va a ser un objeto de juego vacía que va a ser la celebración de todo nuestro, todos los objetos que están relacionados con el mapa. Todas las estructuras y cosas por el estilo. Sólo por lo que es mucho más ordenado aquí en la jerarquía y que puede mirar a través de él y entender lo que es objeto de qué cosa.

          Por lo tanto, vamos a arrastrar nuestro terreno en el objeto de mapa aquí y dejar de hacer realidad una textura para este terreno. Por lo tanto, vamos a ir a nuestras materias carpeta que acabamos de crear vamos a Haga clic derecho aquí, ir Crea, Material y Llamemos a este terreno. Para aplicar un material, podemos simplemente arrastrar en este modo y como vamos a cambiar este material por aquí, vamos a definir la intensidad hasta el fondo y vamos a cambiar el color a un verde albedo. Por lo tanto, vamos a ir verde aquí. Sí, algo así.

          Se puede notar sin embargo que las sombras se ven muy oscura y no es tan buena. Esto es lo que es por defecto, pero lo que podemos hacer para solucionar este es ir a la iluminación del panel. Si no tiene la iluminación del panel, se puede ir hasta la ventana aquí, ir de representación, y luego Iluminación Ajustes. Y una vez que estamos aquí, todo lo que tenemos que hacer es simplemente haga clic en el botón Generar Iluminación aquí abajo en la parte inferior derecha. Simplemente haga clic en eso, debería tener apenas cualquier momento y hay que ir, ya está hecho. Tenemos nuestras sombras y todo y se ve tan bien ahora. Puesto que estamos utilizando iluminación en tiempo real, que en realidad no tenemos que hacer eso de nuevo, si no quiere optimizarlo. Pero, para nosotros, estamos bien como este.

          Así que, con nuestro terreno, podemos ahora, y al principio puede parecer un poco demasiado brillante, que el verde. Por lo tanto, vamos a cambiar esto a algo un poco más verde así, supongo. Ese aspecto verde bueno. Así que vamos a seguir así. Ahora, la cosa con nuestro terreno en este momento es que se ve muy bien, se ve más o menos el tamaño, pero el problema es que queremos estar usando unidades Unity. Queremos ser escalado todo dentro de las unidades dentro de la Unidad. Y que sólo lo hace mucho más fácil para la física para trabajar como queremos y sólo hace las cosas, todo a escala.

          Por lo tanto, lo que podemos hacer ahora es sólo haga clic aquí, acaba de hacer referencia, vaya al objeto 3D, Cubo y este cubo aquí, si nos enfocamos esto, es uno de un metro. Ahora bien, si la comparamos con el resto del terreno, que hace que el terreno bastante pequeño en comparación con el cubo de un metro. Por lo tanto, vamos a nuestro terreno aquí, y se deja de escala un poco. Vamos a establecer la escala aquí para quizá 10 por 10 por 10. Una vez hecho esto, en realidad podemos eliminar ese cubo, y vamos a empezar en realidad añadir en nuestros edificios y todo eso.

          Por lo tanto, vamos a ir a nuestros modelos carpeta de nuevo, y que en realidad arrastre en la construcción de los activos aquí. Así. Vamos a crear una textura para ello, por volver a nuestra carpeta de materiales en marcha. Vamos a crear un nuevo material y que llamaremos éste edificio. Vamos a aplicarlo a la construcción aquí, y vamos a definir la intensidad de vuelta a cero de nuevo. Y para el albedo, vamos a establecer que esto tal vez una especie de oscuro especie marrón del color de esa manera. Sí, algo así, hay que ir.

          Por el momento, sin embargo, si se hace clic en un edificio, vamos a ver que podemos realidad, que en realidad no tenemos un colisionador en él. Por lo tanto, la gente puede caminar a través de las paredes, que pueden disparar a través de las paredes, pero no queremos eso. Por lo tanto, vamos a ser la adición de un componente de aquí, y el componente que desea agregar va a ser un colisionador de malla. Y lo que esto hace es esto lo hace de manera que, básicamente, la malla es un colisionador. No es necesariamente un colisionador caja o colisionador esfera; que sólo tiene por lo que no se puede caminar en el propio objeto real. Por lo tanto, el colisionador cubre todo el objeto. Hay que ir.

          En este edificio, en realidad vamos a ir a nuestra ventana de Activos, en nuestras casas prefabricadas y dejar de realidad salva esto como una casa prefabricada, así que podemos usar fácilmente más tarde. Vamos a mantenerlo, llamamos edificio, y vamos a arrastrarlo hasta aquí. Iremos prefabricada original y ahí vamos, con nuestro activo edificio. Nuestra prefabricada construcción guardados, así que vamos a arrastrar este hecho en nuestro plano de objeto, ya que es donde pertenece.

          Vamos a añadir en nuestro próximo modelo de entorno, que va a ser la barrera. Y esto es sólo va a ser una especie de escudo de protección que los jugadores pueden esconderse detrás. Vamos a añadir de nuevo un colisionador de malla para cubrir eso. Y vamos a cambiar realmente este material blanco por defecto a otra cosa. Por lo tanto, vamos a crear un nuevo material en la carpeta de nuestros materiales y llamaremos a éste Barrera. Vamos a aplicar esto, definir la intensidad a cero, y para el albedo, vamos a hacer esto por ejemplo, más o menos oscuro, gris oscuro así. Si algo como eso. De acuerdo, esa barrera está hecho, así que vamos a la fricción que en nuestras casas prefabricadas carpeta también. Haremos una prefabricada de que, original prefabricada.

          Y, lo último que tenemos que hacer va a ser nuestra plataforma. Esto es sólo va a ser otra estructura que los jugadores pueden subir en la parte superior, mirar hacia fuera desde la parte superior, y disparar a otros jugadores de. Por lo tanto, vamos a realidad reutilización algunos de nuestros materiales, debido a lo que podemos hacer es, para esta plataforma aquí, podemos definirlo como el material de construcción allí, y para el centro de mesa, sólo podemos hacer eso como la barrera. Por lo tanto, ahí vamos, podemos reutilizar el material de esa manera, podemos crear nuevos materiales, si lo desea, para esto, pero creo que sólo tendremos que mantenemos con este tipo de tema así. Sólo se ve bastante bien.

          Así que, sí, con estas tres cosas aquí, vamos a realidad en primer lugar, ir a las casas prefabricadas y guardar esta plataforma como una casa prefabricada, como tal. Y, de hecho, tenemos que añadir en nuestros colisionadores para esto también, por lo que el interior de aquí, podemos seleccionar el cubo y el otro cubo de aquí, tanto para los diferentes modelos, ir Agregar componente, malla Colisionador. Clic sobre la plataforma aquí, podemos arrastrar ese nuevo en la carpeta Prefabs, guardarlo como una casa prefabricada y hay que ir.

          Ahora, lo que voy a hacer es, sólo voy a dar la vuelta, voy a diseñar el mapa. Usted puede elegir dónde desea colocarlos cuántos diferentes objetos que desee, pero sólo personalizar su mapa. Poner las cosas en las que desee y sí, por lo que vuelvo una vez que mi mapa se terminó.

          Por lo tanto, hay que ir. Tengo mi mapa completo. Acabo de poner las casas, he puesto los edificios en torno a las diferentes áreas aquí arriba en esta pequeña colina aquí en diferentes áreas pequeñas y alrededor mixto que con las torres, así como las barreras. Algo que también tiene que ver, que acabo de recordar, es en realidad añadir un colisionador de nuestro terreno, porque de lo contrario, sólo tendremos que caer a la derecha a través del suelo. Por lo tanto la selección del terreno, vamos a añadir un componente, y añaden un componente de malla, simplemente, añadir un colisionador de malla, al igual que todos los demás. Y eso es todo lo que teníamos que hacer.

          En la siguiente lección, vamos a estar empezando en nuestro gestor de la red, que va a ser en realidad nos conecta a los servidores de fotones y que nos permite crear habitaciones, unirse a las salas, y todo lo demás. Por lo tanto, voy a ver todos ustedes a continuación.

          Transcripción 3

          Muy bien, bienvenidos de nuevo a todos. En esta lección, vamos a estar empezando a crear nuestro script del controlador de la cámara.

          En este momento, estoy en la escena del juego en este momento, y vamos a crear realmente un nuevo guión aquí en la carpeta nuestros scripts. Y vamos a estar llamando a éste CameraController. Ahora con nuestro script controlador de la cámara, vamos realidad anéxalo a nuestra cámara con sólo arrastrar que en la apertura como tal y en Visual Studio.

          Ahora no van a ser dos modos diferentes para esta cámara. No va a ser la primera en la que se trata en realidad unido al jugador, y que será capaz de mirar a su alrededor, van a ser capaces de mirar en horizontal y verticalmente mirar. Y luego, cuando el jugador muere, el jugador entra en el modo espectador, lo que les permitirá volar por el mapa usando WASD o las teclas de flecha, y todavía será capaz de mirar a su alrededor. Por lo que va a permitir que les permite ver la batalla, incluso después de la muerte.

          Así que vamos a quitar las funciones de inicio y actualización aquí, ya que no vamos a necesitar ellos, y comienzan con nuestras variables. Ahora vamos a necesitar unas pocas variables para realizar un seguimiento de las diferentes sensibilidades y posiciones y rotaciones. Así que voy a separarlos por cabeceras, lo cual es un atributo como tal. Y esto sólo tiene un texto en negrita en el inspector, por lo que podemos diferenciar fácilmente estos.

          Y el primero que vamos a hacer va a ser mirada sensibilidad. Y para ello vamos a tener una sensex flotación pública de nuestra sensibilidad del eje X. Y otro para un flotador para nuestra SENSEY para nuestra sensibilidad eje Y cuando se mueve el ratón. A continuación, también queremos fijar nuestra rotación, así que conseguimos sujeción y esto va a ser nuestro flotación pública, miny, ¿cuál es la más baja rotación Y podemos mirar. Y luego para el máximo, que va a ser maxY y lo que es más vertical, podemos mirar -. Entonces, ¿cómo lo alto podemos mirar antes de que las abrazaderas

          Y luego, después de que a continuación, queremos saber de espectador, así que vamos a ir encabezado Espectador pero entonces queremos saber lo rápido que el espectador puede mover. Así espectador o simplemente ir spectatormovespeed aquí. Y después de eso vamos a entrar en nuestras variables privadas. Y en primer lugar que luego queremos conocer nuestra flotador privada rotx, ¿cuál es nuestra rotación X actual y lo mismo para la Y, ¿cuál es nuestra actual rotación Y. Y eso es todo para todas las variables.

          Ahora lo que queremos hacer en primer lugar es – en muchos juegos que puede notar que una vez que saltar en ella ya no se puede ver el ratón y el ratón en realidad no se apaga la pantalla. Y es que el cursor del ratón está bloqueado, y para hacer que el interior de la UNC vamos a hacer esto en la función de inicio aquí. Nosotros se bloqueará el cursor, por lo que realmente puede acceder a la maldición por ir cursor y luego lockstate y esto es igual a CursorLockMode.Locked. Así el cursor será atrapado en el medio de la pantalla, y será invisible. Así se sentirá igual que todos los otros FPS’es.

          Ahora vamos a trabajar en la parte principal de este script que va a ser hecho girar y mover la cámara. Y para ello vamos a no hacemos en la función de actualización, pero que vamos a estar haciendo en la función de actualización tardía. Ahora cuál es la función de actualización es tardía, es que esto es básicamente igual que la función de actualización, pero esto va en el final de la trama. Por lo que este se ejecuta después de todo lo que en las otras funciones de actualización ya se ha ejecutado.

          Y la razón para hacer esto, es porque cuando la cámara está conectada al jugador y estamos haciendo las rotaciones y todo eso, no puede haber alguna interferencia con la forma en que el jugador gira en comparación con lo que la cámara gira a continuación. Por lo que puede tener algún tipo de trepidación Si tenemos esto en la función de actualización. Sin embargo, tener en una última actualización resuelve función de esas cuestiones.

          Así que lo primero que vamos a hacer es que quiera conseguir las entradas movimiento del ratón. Y para hacer eso podemos ir rotx, por lo que vamos a añadir a nuestra rotación X, que va a ser hecho por más input.GetAxis es igual. Y el eje queremos llegar va a ser ratón X como tal. Y luego, por supuesto, queremos que se multiplican por nuestra sensibilidad X. Y de nuevo por la Y podemos ir más ROTY es igual input.GetAxis ratón Y y que se multiplican por nuestra SENSEY así como así.

          Bien, ahora lo que quiere hacer es lo que quiere para sujetar la rotación vertical de modo que no podemos mirar todo el camino hacia arriba, y luego envolver la vuelta ya que esto puede causar algunos problemas con la rotación y los controles para causar de hecho voltear. Así que vamos a estar de sujeción de la rotación de manera que no hace eso, y sólo podemos mirar en lo que va verticalmente y tan abajo. Así que para hacer eso podemos ir a ROTY como Y va a ser la rotación hacia arriba y hacia abajo y que va a ser igual a la mathf.clamp. Y queremos enviamos en el valor donde queremos pinza – que es ROTY. El min, que va a ser miny, y Max, que se va a ser el maxY, como tal. Grande,

          Una vez hecho esto entonces podemos comprobar son que como espectador o no estamos spectating – más o menos estamos vivos o estamos muertos. Así que estamos como espectador? Y para ello sólo podemos ir si isSpectating, si isSpectator continuación, haremos lo que hay aquí. De lo contrario, si le damos el jugador va a hacer esto, y la razón de esto es porque, además de tener el movimiento cuando estamos un espectador, al que atribuimos al jugador a nuestra rotación X, no en realidad girar la cámara horizontalmente . Así que no vamos a estar mirando a la izquierda ya la derecha, en vez estaremos girando el jugador a la izquierda y la derecha. Y la razón de ello es por lo que podemos tener fácilmente el punto de jugador en el sentido de avance que estamos buscando (por lo que no tenemos que hacer algunos otros cálculos más adelante en el controlador de jugador).

          Así que vamos a trabajar aquí en la primera isSpectator, ya que eso es lo que va a configurar esta lección. Así que en primer lugar queremos girar la cámara en posición vertical, y para ello sólo tendremos que ir transform.rotation es igual Quaternion.Euler. Y sólo queremos pasar en nuestra negativa ROTY y nuestra rotx. Estamos haciendo negativo ROTY porque se voltea, si lo hace el deseo de haber invertido controles Y, a continuación, puedes tener eso como ROTY. Está bien, y después de la rotación Z, sólo queremos cero, ya que no quiere que la cámara de inclinación izquierda y derecha.

          Y ahora para el movimiento, podemos ir aquí, y sólo podemos ir a nuestra entrada X. Podemos ir input.GetAxis horizontal, por lo que este va a ser nuestro aporte horizontal, y luego podemos ir a nuestra entrada hacia adelante. Así que cuando estamos en adelante y hacia atrás se puede ir igual a input.GetAxis vertical, por lo que el arriba y abajo de las teclas en comparación con la horizontal, que es la teclas izquierda y derecha. Y para la Y esto puede ser igual a cero por ahora ya que vamos a estar cambiando aquí abajo.

          Ahora, para la Y estamos también va a hacerlo de modo que el jugador puede moverse hacia arriba y hacia abajo y que va a hacer con las teclas E y Q. Así que si input.GetKey, KeyCode.E entonces Y es que va a ser igual a una persona si input.GetKey, KeyCode.Q continuación vamos a ser la creación y al igual a uno negativo por lo que se moverán hacia abajo. N

          ow para aplicar eso, tenemos que hacer un cálculo en este momento para hacerlo de modo que cuando nos movemos, nos estamos moviendo en la dirección que estamos buscando. Porque si sólo aplican estos X, Z e Y direcciones a nuestra transformar por el momento, que nos movería sobre la base de las posiciones y rotaciones globales. Así que si estamos mirando a la izquierda que en su lugar podría avanzar si tratamos de mover a la izquierda, por ejemplo. Así que lo que estamos tratando de hacer es que queremos hacerlo de modo que no importa donde estamos mirando vamos a seguir adelante, izquierda, derecha y hacia atrás con respecto a nuestra rotación.

          Y para ello vamos a crear un Vector3, llame a ese directorio para la dirección y que será igual a transform.right, por lo que nuestro derecho a transformar dirección. Por lo que la dirección que está a nuestra derecha, que se multiplican por X más transform.up, se multiplica por Y además transform.forward, se multiplica por Z. Y con eso, entonces podemos aplicar eso a nuestra posición local vamos. Transform.position además es igual dir en la dirección que queremos los tiempos de viaje veces SpectatorMoveSpeed ​​Time.deltaTime (por lo que es independiente de la velocidad de fotogramas), y nos movemos en el mismo momento, sin importar lo que tenemos de imágenes por segundo.

          Y es por eso, vamos a saltar en realidad ahora de nuevo en el editor de aquí y probarlo. Vamos en realidad se remontan en establecer aquí y sólo isSpectator a cierto por ahora de forma manual, por lo que podemos probarlo. Y para nuestra sensibilidad X, i, se acerca aquí. Para nuestra sensibilidad X, podemos establecer que esto – y voy a decir 10 por ahora, Y es 10, min Y se active esta negativa 90, Max Y 90. Espectador movimiento Velocidad irá 10. Está bien y dejar de juego de la prensa y ver si esto funciona. A ver si podemos mirar a su alrededor. Como se puede ver que puedo mirar a su alrededor con el ratón, y con las teclas de flecha puedo mover como tal. Puedo presionar E para subir, Q a bajar.

          En la siguiente lección, vamos a estar empezando en nuestro controlador de jugador. Conectar el resto de la cámara para el jugador y terminando el guión de la cámara cuando en realidad está unido al jugador de manera que hacemos girar no sólo la cámara, pero el jugador así hacer frente a la dirección. También cuando se está en este modo, no se puede presionar el botón de reproducción. Así que lo que puede hacer es que o bien puede ir pulse Escape para conseguir el ratón como tal, y haga clic en él o simplemente puede ir Control + P para alternar el plano como tal. Así que sí me veré a todos en la próxima lección.

          interesado en continuar? Echa un vistazo a la plena Battle Royale -. Multijugador Proyectos curso, que forma parte de nuestra partida de varios jugadores de Desarrollo Mini-Grado

          Mensajes relacionados

Deja una respuesta

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