Puede descargar los activos utilizados en este tutorial de:
modelo de personaje 3D se ha creado usando Autodesk generador de caracteres
sprites 2D se me dio libre de Kennynl en Kenney • Tanques p>
Los archivos de origen tutoriales se encuentran aquí.
Hoy, vamos a hablar de raycasting. Para aquellos no familiarizados con el término raycasting, vamos a darle un poco de una explicación de lo que es antes de empezar. P>
Tabla de contenidos p>
convertirse en un desarrollador de juegos vr profesional con la unidad
Pre-Order strong> The Complete Realidad Virtual desarrollo del juego con Unity y aprender a crear juegos y experiencias de inmersión mediante la construcción de 10 juegos de realidad virtual. El curso asume ninguna experiencia previa Unidad o VR – Te enseñaremos C #, la Unidad y la programación 3D de la tierra-para arriba p> comprobarlo en Zenva Academia y obtener acceso temprano! P> “raycasting es el proceso de disparar un rayo invisible desde un punto, en una dirección especificada para detectar si cualquier colisionadores yacían en la trayectoria del rayo.” raycasting en Unity3D se divide en dos partes bien diferenciadas, 2D y 3D. Ambos de los cuales son objetos de la física. Ellos tienen su propia documentación de los métodos que proporcionan; 3D y 2D respectivamente, sin embargo, ambos de los cuales utilizan el mismo objeto juego (el procesador de línea) para ambos juegos en 2D y 3D. P> Antes de empezar, vamos a crear un proyecto vacío 3D. Dado que este proyecto utilizará tanto en 2D como en 3D, es bastante sencilla para la conversión de 2D para una escena más adelante. P> Crea 5 carpetas en total en el Activo strong> carpeta. Modelos strong>, Escenas strong> y Scripts strong>. Dentro de la carpeta de modelos, crear 2 carpetas llama Arte 2D strong> y 3D Art strong>. P> Importar el arte en sus respectivas carpetas. P> Ahora, crear y guardar escenas de 2. Nombrarlos 2D y 3D respectivamente. P> Carga de la escena 2D y deja que comience la lección para raycasting en Unity3D para juegos 2D. P> Para empezar, retire la luz direccional. Hacemos clic en 2D strong> en la vista de escena y cambiar la cámara de Perspectiva strong> ortográfico. Strong> p> El spritesheet tanque debe tener la tipo de textura strong> situado en Sprite (2D y UI) strong> y Modo de Sprite strong> se define en Múltiple. Strong> Ahora selecciona solicite. Strong> p> Haga clic en el Editor de Sprite y ahora podemos empezar a cortar el spritesheet en objetos de sprites individuales. P> Haga clic en División strong>. Se coge una pronta, vamos a mantener el tipo de sector a ser Automático strong> y División strong> en el menú. El último paso es hacer clic en Aplicar. Strong> p> Se nos llevará de nuevo a la interfaz de usuario estándar de Unity3D. El spritesheet tanques tendrá muchos sprites individuales en el subsprite en tanks_spritesheetRetina strong>. Vamos a utilizar tanks_spritesheetRetina_0 strong>. P> Arrastre el sprite que queremos utilizar en la vista de escena. La posición x debe ser -7.91 y la posición y debe ser 0,75. P> componente complemento strong>, el componente que desea agregar es un Línea Procesador strong>. Línea Procesador strong> se encuentra en Efectos strong>. p> Crear un script llamado TwoDRayCasting y adjuntarlo al objeto tanques. Asegúrese de que el Línea Procesador strong> tiene un Ancho strong> de 0,25 p> Ahora, podemos escribir nuestro código. P> Vamos a diseccionar el código para que sea mucho más comprensible p> Pulse el botón de reproducción y probarlo. Para controlar el láser, presione el botón izquierdo del ratón. El siguiente, vamos a crear una animación horrible y hacer lo raycasting con él. Multi clic en las imágenes número 0, 1, 5 y 6; Arrastre en el lienzo. Se abrirá una parada rápida. Me quedé con el nombre como nueva animación y se guarda en la carpeta de arte 2D. P> La posición del nuevo tanque debe ser -7,91, -0,3, 0. Añadir el componente Line Renderizador y cambiar la anchura de la línea de renderer a 0,25. P> Una el script para el tanque como antes. P> ejecutarlo, prepararse para una crisis epiléptica de la animación. P> Ahora podemos llegar a la parte Sé que ustedes han estado esperando siempre tan pacientemente, raycasting 3D. Éste es un poco más complicado, pero no mucho más complicado. Voy a ir más raycasting como si estuviera construyendo un juego de plataformas de desplazamiento lateral con el rodaje mecánica y un shooter en primera persona en el que disparar una ráfaga como que están construyendo un cómic / juegos de anime héroe. P> En primer lugar en el tajo es que vamos a escribir el guión, tanto para el desplazamiento lateral y el modo de primera persona. Sé que es un cambio en el ritmo de cómo hago las cosas con normalidad, que hará que sea mucho más fácil para mostrar las tareas rutinarias de unir los objetos del juego vacías y una instancia del procesador de manera apropiada. P> secuencia de comandos de desplazamiento lateral p> Aviso la única diferencia entre este guión y el guión 2D es que estamos utilizando SetPosition en un contexto diferente al de la versión 2D. Vamos a echar un vistazo más de cerca a lo que estamos haciendo con éste. P> ray.origin es el punto en el que se origina ray. em> Hemos establecido el Ray para ser sede fuera de la posición transform del objeto que atribuimos a, y la dirección es hacia la derecha de la transformación del objeto adjunto. Hemos establecido el primer elemento de la matriz a estar en el punto de origen para el rayo. Hemos establecido el segundo elemento del rayo a ser un punto específico multiplicado por un número arbitrario para la manipulación de la curva de base de la ubicación del modelo y la ubicación. P> a continuación tenemos el guión fps, que trabaja con primera / tercera / y de arriba hacia abajo puntos de vista. p> también establece el rayo estar basada fuera de la posición de la transformada del objeto que está unido a, y también establece la dirección para ser hacia adelante. Tan sólo hay que poner el punto a ser de 100 unidades de distancia del punto de origen. P> Uf, ahora que todo eso está fuera del camino, podemos comenzar a construir la escena. P> exención de responsabilidad: He creado una casa prefabricada que ya ha modificado el modelo de la T-pose a la pose que queremos usar para esta parte de la lección. Otra lección adelante en el camino va a hablar más en profundidad acerca de las animaciones de modelos 3D dentro de la unidad y cómo construirlos. Strong> p> Para empezar, crear una nueva escena llamada 3DSideScroll. P> La cámara principal debe estar en el modo Perspectiva con una posición de 0, 0,33, -3,38 para este ejemplo. A pesar de que puede y debe hacer el modo ortográfico. P> Ahora vamos a importar el prefabricada que he creado para esta parte de la lección en la escena. Añadir el guión ThreeDRayCastingSideScrollMode al personaje. Navegué en la jerarquía del personaje, todo el camino a la derecha. P> Esta es la parte divertida, la adición de un procesador de línea al personaje. Asegúrese de que la caja para el procesador de línea no está marcada. Exactamente debajo de donde se une el guión es donde voy a colocar el procesador. Asegúrese de que el ancho de la línea es de 0,05 Procesador (aunque se puede jugar con la anchura hasta que encuentre uno que le guste más). P> Me puso el Procesador de línea y del script en el lado derecho de la casa prefabricada, ya que es la trayectoria Quiero que el procesador de la línea a seguir. Fácilmente se podría poner el procesador de línea en un objeto de juego vacía en un lugar de su elección y llevar a cabo la misma hazaña. La forma en que lo hizo permite que el motor para encontrar dónde está el punto de partida para el procesador de línea se basa en la ubicación del carácter sin necesidad de código adicional. P> Puede ejecutar la escena y probarlo por ti mismo ahora. P> En este ejemplo, voy a hacer las dos primera persona y tercera persona sobre el hombro vista. P> Empecemos con la tercera persona sobre la opinión del hombro. La razón de esto es porque todo lo que necesitamos hacer para modificar ésta a la primera persona está literalmente cambiando la posición del modelo de personaje. P> Una vez más, ya he creado una casa prefabricada del modelo, ya que he cambiado desde la T representan para la pose que desee mediante las articulaciones dentro de la unidad. P> Carga de la escena 3D para empezar. P> Añadir el prefabricada a la escena y ajusta la posición del modelo a -0.22, -1.36, 0. P> Una vez más, he añadido el procesador de línea con un ancho de 0,15 y el guión ThreeDRayCasting al índice de la mano derecha 1 dentro de la jerarquía del modelo. P> Puede ejecutar la escena y probarlo por ti mismo ahora. Que no era demasiado duro con 3D tercera persona sobre el hombro vista era? Ahora, vamos a ir a la vista en primera persona. P> En realidad, la única diferencia entre la 3ª persona Vista por la espalda y la primera opinión de la persona realmente es la posición del carácter y un cambio muy menor a la propia cámara. P> Para empezar, vaya a la cámara principal. Cambiar el plano de recorte de cerca de 0,12. P> A continuación, cambie la posición del modelo. Puede jugar con él hasta que encuentre lo que te gusta, fui con un simple 0, -0.28, -3.44. Tiene que la vieja escuela FPS tacto con cómo se ve, otorgada sin el material de interfaz de usuario o el hecho de que no hay arma en este ejemplo. P> Puede ejecutar la escena y probarlo por ti mismo ahora. P> Como se puede ver, la creación de Renderizadores Line es una tarea muy sencilla que se puede realizar con bastante rapidez y eficacia. Estos pueden tomar el lugar de efectos de partículas y actuar como un rayo láser, rifle láser, y muchas cosas más. Ellos trabajan muy bien con la física y otros efectos. P> Con todo, creo que fue muy digno de él para mostrarle algunas cosas muy importante que usted podría hacer con la línea Renderizadores porque nunca se sabe, se les pueda necesitar en algún momento en el futuro. P> espero que este tutorial ayudó a aprender algo nuevo y te verá toda la próxima vez. Que su código de estar limpia y libre de errores. Te voy a atrapar en el siguiente tutorial. P>
¿Qué es raycasting? H3>
Esto es útil con los tiradores de desplazamiento lateral, fps, videojuego de disparos en tercera persona, infierno de balas, y los juegos de aventura pares. Ser capaz de dejar rastro, donde una bala o el láser va a viajar desde el principio hasta medios de acabado que sabemos exactamente cómo debe comportarse. Podemos ver físicamente y manipularlo en el mundo del juego. P>
Introducción h4>
p>
p>
p>
raycasting en 2D h4>
p>
p>
p>
ejemplo de una imagen estática:
p>
p>
p>
p>
utilizando System.Collections; usando UnityEngine; TwoDRayCasting clase pública: {MonoBehaviour línea LineRenderer; Inicio private void () {line = gameObject.GetComponent
// Esto nos permite acceder a la línea LineRenderer componente Línea Renderizador; 12 // Esto nos permite acceder a la línea Línea Procesador componentLineRenderer; Inicio vacío privado () {// Desde el procesador de línea es un objeto privado, debemos hacer // seguro de que podemos acceder al componente más adelante. A fin de obtener el componente // para estar seguro. Línea = gameObject.GetComponent
P>
Animación 2D ejemplo:
p>
p>
p>
raycasting en 3D h3>
Las secuencias de comandos: h4>
utilizando System.Collections; usando System.Collections.Generic; usando UnityEngine; ThreeDRayCastingSideScrollMode clase pública: {MonoBehaviour línea LineRenderer; Inicio private void () {line = gameObject.GetComponent
Ray ray = nuevo Ray (transform.position, transform.right); 1Ray ray = NewRay (transform.position, transform.right); line.SetPosition (0, ray.origin); line.SetPosition (1, ray.GetPoint (-10) * .24f); 12line.SetPosition (0, ray.origin); line.SetPosition (1, ray.GetPoint (-10) * 24f.);
ray.GetPoint devuelve un punto en unidades de distancia a lo largo del camino. Em> p>
utilizando System.Collections; usando System.Collections.Generic; usando UnityEngine; ThreeDRayCastingFirstPersonMode clase pública: {MonoBehaviour línea LineRenderer; Inicio private void () {line = gameObject.GetComponent
Ray ray = new Ray (transform.position, Vector3.forward); 1Ray ray = NewRay (transform.position, Vector3.forward); line.SetPosition (1, ray.GetPoint (100)); 1line.SetPosition (1, rayo .GetPoint (100));
Side Escena de desplazamiento h4>
p>
p>
Su posición debe ser -3.26, -1.15, 0. También debe tener una rotación de 0,75,0. P>
p>
p>
p>
3D Escena h4>
tercera persona por la espalda h4>
p>
p>
p>
p>
primera persona Ver h4>
p>
p>
Consideraciones finales h3>
Mensajes relacionados h3>