Ahora que hemos pasado a través de los fundamentos del desarrollo 3D con Unity3D, ahora podemos cubrir los aspectos básicos. Los fundamentos cubrirán vista en primera persona, tercera persona, y la detección de colisiones. Como de costumbre, mis tutoriales se pueden dividir en varias secciones. La primera sección se cubre lo que es vista en primera persona y la forma de lograrlo mediante código. La segunda sección cubre lo que es vista en tercera persona y la forma de lograrlo mediante código. La tercera y última sección es todo acerca de la detección de colisiones en 3D.

Puede descargar el proyecto completo Unidad para este tutorial aquí.
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

    Indice

    Sección 1: Vista en primera persona

    vista en primera persona no es tan complicado como parece. Por el contrario, en realidad es muy simple. Primer medio de opinión de la persona que el jugador es la cámara, o simplificar, la cámara está el jugador. Las implicaciones de todo este proceso de pensamiento simplifica como diseñador y como programador.
    Así que, ¿cómo empezamos a utilizar este conocimiento dentro de Unity3D? Podríamos empezar por la construcción de una escena 3D y la configuración de la escena para probar. Creo que probablemente sería mejor tener en cuenta si lo hacemos demasiado para un curso básico, las cosas podrían ser muy confuso.

    Para empezar, cree un nuevo proyecto de la Unidad y navegar hacia la ventana de Activos tienda ( Ventana> Activos tienda ). Aquí, queremos buscar y descargar el activo cuadrícula Prototipo Materiales.


    Ahora que la carpeta de terceros ha sido añadido a su proyecto, seguir adelante y añadir la carpeta de escenas y secuencias de comandos. También crear un script C # llamado FirstPersonCamera.

    Crear un nuevo escenario llamado en primera persona y crear un nuevo plano de la tierra.


    • Establecer la Escala a 2
    • Asignar el material Prototype_512x512_Blue1


      Ahora podemos pasar al lado de scripting. He tratado de hacer un enfoque extremadamente básico a secuencias de comandos para que la cámara se mueva con el caso de usar el ratón y el teclado. Puesto que tenemos la intención de unir la secuencia de comandos directamente a la cámara, podemos utilizar la palabra clave this u omitir la palabra clave this y acaba de escribir la transformación.
      flotación pública turnSpeed ​​= 4.0F; flotación pública movespeed = 2.0f; flotación pública minTurnAngle = -90.0f; flotación pública maxTurnAngle = 90.0f; flotador privada rotx; nula Update () {MouseAiming (); KeyboardMovement ();} void MouseAiming () {// obtener los insumos ratón flotan y = Input.GetAxis ( «Ratón X») * turnSpeed; rotx + = Input.GetAxis ( «Mouse Y») * turnSpeed; // abrazadera de la rotación vertical rotx = Mathf.Clamp (rotx, minTurnAngle, maxTurnAngle); // rotar los transform.eulerAngles cámara = new Vector3 (-rotX, transform.eulerAngles.y + y, 0);} KeyboardMovement void () {Vector3 dir = new Vector3 (0, 0, 0); dir.x = Input.GetAxis ( «horizontal»); dir.z = Input.GetAxis ( «vertical»); transform.Translate (dir * movespeed * Time.deltaTime);} 1234567891011121314151617181920212223242526272829303132333435publicfloatturnSpeed ​​= 4.0F; publicfloatmoveSpeed ​​= 2.0f; publicfloatminTurnAngle = -90.0f; publicfloatmaxTurnAngle = 90.0f; privatefloatrotX; voidUpdate () {MouseAiming (); KeyboardMovement ();} voidMouseAiming () {// obtener el inputsfloaty ratón = Input.GetAxis ( «mouse X») * turnSpeed; rotx + = Input.GetAxis ( «mouse Y») * turnSpeed; // abrazadera de la vertical rotationrotX = Mathf.Clamp (rotx, minTurnAngle, maxTurnAngle); // rotar los cameratransform.eulerAngles = newVector3 (-rotX, transform.eulerAngles.y + y, 0);} voidKeyboardMovement () {Vector3 dir = newVector3 (0,0,0); dir.x = Input.GetAxis ( «horizontal»); dir.z = Input.GetAxis ( «vertical»); transform.Translate (dir * * movespeed Time.deltaTime);}

      Ahora, podemos adjuntar el script para la cámara arrastrando y soltando el primer script persona en la cámara en el panel de información.


      Guardar la escena en la carpeta con el nombre de escena en primera persona. Para ello, haga clic en Archivo, Guardar Como escena.
      Ahora usted puede seguir adelante y ejecutar la escena. Voila, ahora tiene una escena donde el jugador es la cámara. Esta es la base general para un primer juego de opinión de la persona.

      Sección 2: Tercera persona perspectiva

      Es extremadamente fácil de complicar más el proceso de pensamiento para una tercera persona juego de perspectiva y con buena razón. Mi primera suposición era que la cámara siga al jugador de manera similar a la que se produciría en un juego de plataformas en 2D. Pero, en realidad, eso no tiene sentido cuando se piensa en ello desde una perspectiva 3D. Por lo tanto, lo que hace tiene sentido y el trabajo?
      Puede ser tan simple o complicado como usted quiere que sea. Debemos repasar algunos ejemplos. Existen varios métodos que se pueden utilizar para la perspectiva en tercera persona.

      Uno de los métodos es dar el primer cámara de opinión de la persona y el desplazamiento sobre el hombro o detrás del modelo de reproductor. preocupaciones de este método son que el personaje se enfrenta y la detección de colisiones.
      Otro método es la vista desde arriba. La vista de arriba no le importa si el jugador se enfrenta a la cámara o no.
      Un tercer método es una cámara de ángulo fijo. No importa donde el jugador caras, sólo se preocupa por si el jugador está en la habitación o no.

      El último método que quiero mencionar es una cámara de circuito cerrado de televisión. Piense en esto como una cámara fija ángulo que actúa como una cámara de vigilancia con un televisor que muestra el reproductor de lo que está pasando. Este método sólo se preocupa por si el jugador está en la habitación.
      Hay un montón de otras cámaras de visión en tercera persona que podrían utilizarse. Pero los que se enumeran deben darle una idea de base de la diferencia entre las perspectivas tercera persona y en primera persona, en adición a activar algunos recuerdos de los juegos que ha jugado en el pasado o en la actualidad, y te hacen pensar acerca de cómo decidieron ir con esa particular la perspectiva del juego.

      Así que vamos a crear una nueva escena y configurarlo de una manera similar a la anterior.


      • Crea un cubo y colocarlo en el centro de la escena
      • Mueva la cámara a estar en una perspectiva en tercera persona del cubo


        Crear un nuevo script llamado ThirdPersonCamera y adjuntarlo a la cámara.
        flotación pública turnSpeed ​​= 4.0F; GameObject objetivo público; targetDistance flotador privado; flotación pública minTurnAngle = -90.0f; flotación pública maxTurnAngle = 0.0f; flotador privada rotx; vacío Inicio () {targetDistance = Vector3.Distance (transform.position, objetivo .transform.position);} void Update () {// obtener los insumos ratón flotan y = Input.GetAxis ( «ratón X») * turnSpeed; rotx + = Input.GetAxis ( «Mouse Y») * turnSpeed; // abrazadera de la rotación vertical rotx = Mathf.Clamp (rotx, minTurnAngle, maxTurnAngle); // rotar los transform.eulerAngles cámara = new Vector3 (-rotX, transform.eulerAngles.y + y, 0); // mover la posición de la cámara transform.position = target.transform.position – (transform.forward * targetDistance); objetivo publicGameObject;;} 1234567891011121314151617181920212223242526272829publicfloatturnSpeed ​​= 4.0F privatefloattargetDistance; publicfloatminTurnAngle = -90.0f; publicfloatmaxTurnAngle = 0.0f; privatefloatrotX; voidStart ( ) {targetDistance = Vector3.Distance (transform.position, target.transform.position);} voidUpdate () {// obtener el inputsfloaty ratón = Input.GetAxis ( «mouse X») * turnSpeed; rotx + = Input.GetAxis (» ratón Y «) * turnSpeed; // abrazadera de la vertical rotationrotX = Mathf.Clamp (rotx, minTurnAngle, maxTurnAngle); // girar las cameratransform.eulerAngles = newVector3 (-rotX, transform.eulerAngles.y + y, 0); / / mover la cámara positiontransform.position = target.transform.position- (transform.forward * targetDistance);}

        Arrastre la secuencia de comandos de la cámara tercera persona en la cámara. A continuación, la propiedad de destino debe tener el componente cubo arrastrado en la misma.


        Si se ejecuta el juego, usted debe ser capaz de mover el ratón con el fin de órbita alrededor del cubo.

        Sección 3: Colisiones

        La detección de colisiones se ha hecho mucho más fácil con otros motores de desarrollo de juegos Unity3D y. Lo que hace más fácil la detección de colisiones dentro Unity3D es las opciones disponibles para usted. Tiene colisionadores Box, malla colisionadores, cuerpo rígido, colisionador esfera, colisionador cápsula, colisionador de rueda, colisionador terreno, tela, articulación en bisagra, articulación fija, conjunta de primavera, conjunta carácter, conjunto configurable y fuerza constante. Estos son los solos para 3D.
        Si desea hacer una 2.5D o juego en 3D que también tiene elementos 2D, hay más opciones disponibles. Cuerpo rígido 2D, Círculo Colisionador 2D, Caja Colisionador 2D, Borde Colisionador 2D, Polígono Colisionador 2D, Primavera Conjunto 2D, Distancia conjunta 2D, la unión de bisagra 2D, deslizante conjunta 2D, la rueda conjunta 2D, fuerza constante 2D, Zona de Efectos 2D, Punto de efectos 2D , Plataforma de efectos 2D y 2D Superficie efector.
        Cada una de estas opciones tiene su propio uso particular, ya pesar de que no vamos a ir sobre todos y cada uno, que será seguro para cubrir los que va a utilizar principalmente en el desarrollo básico del juego.
        Las principales son que va a utilizar en un juego básico 3D es el colisionador de la caja, malla Colliders, cuerpo rígido, Esfera Colisionador, y el terreno. Siento que deberíamos hablar de ellos.

        Caja Colliders

        Una Caja Colisionador es una colisión básica en forma de cubo primitivo. En otras palabras, es en forma de un cubo al igual que lo sería. Así usos básicos de lo que sería un cofre, piso, paredes, o si desea utilizar tanta potencia de procesamiento que podría, cada parte individual de un modelo 3D.

        Mesh Colliders

        Una malla Colisionador construye un colisionador basado en la malla de activos de un modelo 3D. Es uno de los métodos más precisos de detección de colisión y tiene la capacidad de colisionar con otros colisionadores de malla si lo desea.

        cuerpo rígido

        Uno de los tipos más utilizados colisionador y reconocibles. colisionadores cuerpo rígido le permiten activar GameObjects a aplicar las leyes de la física dentro de un entorno de juego. También debo señalar que puede interactuar con los objetos a través del motor PhysX también.

        Esfera Colisionador

        Esfera Colliders son una colisión básica en forma de esfera primitiva, es decir, en forma de una esfera. Estos pueden ser usados ​​en las pelotas, puño, cabezas, y etcétera.

        Terreno

        El Terreno Colisionador crea una superficie de colisión que tiene la misma forma que el objeto del terreno que se adjunta a.

        Como he mostrado anteriormente, hay un montón más de física objetos que se utilizan desde dentro Unity3D. tutoriales posteriores cubrirán estos como sea necesario.
        Cada una de las diferentes opciones de la física tienen un guión unido a ellos que no se puede acceder o modificar. Sin embargo, cuando es necesario, puede crear un script del controlador que puede manejar las colisiones en sus propios términos, si así lo desea.
        Ahora que hemos repasado algunos de los objetos básicos de la física a la colisión mango, es el momento para nosotros para poner en práctica esta realidad en una escena.
        Esta sección del tutorial es muy corto y muy fresco por decir lo menos. Debido a que estamos utilizando una función de los objetos dentro de Unity3D, no tenemos que hacer ningún scripting en absoluto.

        Básico Colisiones:

        Para empezar, hacemos una nueva escena.


        Haga clic en la cámara y tomar no los de la X, Y, Z y posiciones de la misma. Estas cifras son inmensamente importantes.



        • Haz clic derecho en el panel de jerarquías, resalte 3D de objetos y seleccione Plano.
        • Haz clic derecho en el panel de jerarquías de nuevo, resalte 3D de objetos y seleccionar Cubo.

          Seleccione la cámara principal y vistazo a la vista previa de la cámara en la parte inferior derecha de la vista de escena. Ni el avión o el cubo aparece. Tenemos que arreglar eso.


          Para hacer más fácil esta parte, entré en la vista del juego. Seleccione Plano, tenemos que modificar la Posición Y de su transformada a 0,8.
          Note el avión tiene un plano (finura), Malla Colisionador, y malla Procesador. La malla Colisionador es importante en la implementación física.


          Seleccione el cubo y en el panel de información, tenemos que cambiar la Y y Z de la posición de su transformada. Y se establece en 2, y Z se establece en -8.
          Observe el cubo tiene un cubo (finura), Caja Colisionador, y malla Renderizador también.


          Si se va a seleccionar el botón de reproducción en este momento, se puede observar que los bloqueos de caja en el aire y desafía la gravedad. Hay un último paso que falta para completar antes de la física gravitacional pueden tener lugar. Hay que añadir un cuerpo rígido al cubo.
          Para ello, haga clic en Agregar componente en el panel de información del Cubo y seleccione Física.


          Ahora, seleccione el componente cuerpo rígido.


          Aviso el cuerpo rígido tiene una serie de propiedades que han poblado dentro del cubo en el panel de información. Masa, la gota, la fricción angular, Usar la gravedad, se cinemática, Interpolar, detección de colisiones, y limitaciones.

          misa se debe establecer en 1, 0 arrastre, arrastrar angular 0,05, utilizar la gravedad debe ser verificada, Is cinemática no está marcada, se puede interpolar no debe ser ninguno, detección de colisiones es discreto y restricciones no debería tener nada comprobado.


          Si hace clic en el botón de reproducción Ahora, la caja debe caer en el avión como si la gravedad se afecta en la vida real.


          Enhorabuena, ha añadido ahora algo de física rudimentarias para su juego!
          Como se puede ver, los conceptos básicos de desarrollo de juegos 3D en sí mismo puede ser una tarea compleja y difícil. En el futuro cercano, vamos a entrar en mucho más profundidad y crear un juego en 3D, que alberga todos los elementos utilizados dentro de cada tutorial que subo. Espero que hayan disfrutado de este tutorial y esperamos a la siguiente, hasta la próxima vez … “Que su código sea robusto y libre de errores.”

          Mensajes relacionados

Deja una respuesta

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