Está en la página 1de 18

Traducido Por El Traducctor De Google, Puede Haber Alguna Falta.

Disfrutenlo

By_Natrostus

Pgina 1

INDEX
1. Parte 1: Introduccin

Requisitos Inicio de un nuevo proyecto Configuracin del entorno del juego Agregar el personaje principal, Adicin de un arma Crear el objeto de Misiles Explosiones de misiles Los efectos de sonido Adicin de una interfaz grfica de usuario Fsica Agradecimientos

By_Natrostus

Pgina 2

Parte 1 : Introduccin
En este tutorial se detallar la forma en para hacer una sencilla Primera Person Shooter (FPS). No se introducir 3D fundamental programacin de juegos los conceptos y dar consejos sobre cmo pensar como un juego programador.

Requisitos previos
Este tutorial se supone que est familiarizado con la interfaz de la Unidad y la programacin bsica conceptos.

Inicio de un nuevo proyecto


descargar FPS_Tutorial.zip, descomprima y abra el la carpeta del proyecto en Unity. Importacin de la Norma Los activos del paquete Unidad de su paquetes estndar carpeta en la Unidad est instalado.

By_Natrostus

Pgina 3

Despus de la importacin, que se vase la Unidad est construido en el "estndar Activos "en el proyecto Grupo. Cuando creamos nuevos activos, lo mejor es ponerlos en las carpetas que los grupos de acuerdo a su funcin, por ejemplo, Rocket, explosin, Audio, etc.

Configuracin del entorno del juego


Una vez que los bienes hayan sido importados, te dars cuenta de que hay muchas carpetas en el Proyecto panel. En el panel de proyectos, seleccione el mainLevelMesh a partir de objetos / mainLevelMesh / mainLevelMesh.

En el panel Inspector, dentro de las opciones FBXImporter se encuentra el generar Colisionadores "opcin. Activar esta opcin. Si no hacemos esto, el jugador se simplemente se caen a travs del nivel (sin colisiones).

Arrastre el mainLevelMesh en la escena.

No hay necesidad de aadir una luz a la escena, el nivel ya est totalmente lightmapped. La nivel de importacin para todos los mapas de luz utiliza la iluminacin que nos permite utilizar probaked. Lightmaps son muy buenas para el rendimiento, especialmente si usted desea crear una configuracin de iluminacin compleja. Ahora est listo para aadir un carcter en el medio ambiente.

By_Natrostus

Pgina 4

Agregar el personaje principal


Ahora vamos a aadir en un personaje para el jugador de controlar.La unidad tiene incorporado en el prefabricados especficamente para un firstPerson controlador. Esto se puede encontrar en el panel Proyecto en el activo estndar> Prefabricados.

Para agregar el controlador en primera persona, haga clic en la flecha al lado de los activos en el estndar el panel Proyecto, como una lista de activos aparecer. Buscar la carpeta llamada prefabricadas o haga clic en la flecha en el lado izquierdo. Ahora debera ver la primera persona control de activos. Arrastre esto a la vista de la escena. usted debe ver un objeto que representa el jugador del cilindro, 3flechas grandes para alterar la ubicacin en el espacio 3D para el objeto (si es que no se ve a continuacin, 3 flechas presione el botn "W" clave), y una malla blanca que muestra vista del objeto (en que est buscando). El controlador de FPS es ahora la cmara por defecto, moviendo este objeto, se cambia el punto de vista actual en la vista del juego.Tambin te dars cuenta que el controlador de FPS tiene un icono de la cmara en la parte superior de la misma. Mueva el carcter tan que est por encima del nivel del suelo en el medio ambiente. Como ya no tenemos ninguna necesidad de que la cmara principal, puede eliminarlo. Pulse el botn Reproducir, ahora debera ser capaz de moverse por el nivel con el ratn y el teclado (teclas de cursor para mover o W, A, S, D).

Ya ha creado un FPS muy simples, vamos a dar al jugador un arma.

By_Natrostus

Pgina 5

Adicin de un arma
Ahora vamos a dar al jugador un objeto de tipo granada para lanzar en el medio ambiente. Para ello, tendrs que crear algo de Javascript para contar la Unidad sobre el comportamiento del arma. Entonces, qu queremos hacer? Queremos permitir que el jugador dispara siempre que la cmara est apuntando. Sin embargo, primero vamos a pensar en nuestro carcter de juego y sus armas. Nuestro personaje del juego es visto a travs de la vista en primera persona, con la cmara en posicin al nivel del ojo. Si el jugador dispara a las armas, el arma debe ser lanzado desde cualquier lugar sus manos, no del nivel de los ojos. Esto significa que tenemos que aadir en un objeto de juego para representar el lanzador de la granada, y el lugar donde la mano del jugador sera cuando tienen estas armas. Esto asegura que el objeto se dispara partir de la correcta ubicacin.

Crear el programa de lanzamiento de armas


En primer lugar, vamos a aadir en un juego de objetos para representar el lanzador de granadas. Un objetivo del juego es cualquier elemento en el mundo en 3D (el jugador, el nivel, sonidos), los componentes son las propiedades como objetivo del juego tiene. Por lo tanto, se aplican a los componentes de los objetos del juego. En el men principal GameObject seleccione Opciones> Crear Empty y cambiar el nombre del objeto a "Launcher" en el panel de la Jerarqua. Nota, este objeto es invisible como es objeto vaco, sin embargo, es slo un marcador de posicin para nuestro lanzador de misiles. Ahora vamos a entrar en cerca de nuestro controlador de FPS para que podamos ver dnde colocar el arma de lanzador. Seleccione el controlador de FPS en el panel de jerarqua y asegurar que el cursor se encuentra sobre la vista de escena, "F" de prensa (recuadro seleccionado).Esto nos centra en el jugador (el elemento seleccionado). Ahora seleccione el lanzador desde el panel de la Jerarqua y elija Game Object >Move to view desde el men principal. Observe cmo el lanzador objeto se encuentra ahora cerca del controlador de FPS. Ahora podemos utilizar los mangos de situar el lanzador aproximadamente donde las manos deben estar. NOTA Puede que el personaje hacia la izquierda o diestros mediante la alteracin de la ubicacin de este objeto, sin necesidad de cambiar ningn cdigo.

By_Natrostus

Pgina 6

Asegrese de que su diseo de la ventana La unidad est en modo de 2 por 3 , ( Window >Layouts >2by 3 ) y pulse el botn Reproducir. Haga Launcher est seleccionado en la jerarqua ver y al mismo tiempo viendo la vista de la escena, mover el personaje alrededor. Usted cuenta de que nuestro objeto de lanzamiento no se mueve con nuestro personaje (se puede pulsar Play para detener el juego terrestre de ahora). Para resolver este problema, arrastre el Lanzador. Para resolver este problema, arrastre el objeto lanzador the Main Camera object que pertenece al controlador de FPS en el panel de la Jerarqua. Est bien para romper el Prefab conexin. Ahora ejecuta el juego de nuevo y ver la vista de la escena, el Lanzador de ahora debe moverse con nuestro carcter. Hemos asociado la Lanzador de objeto en el juego con un objeto que se mueve en los 3 ejes (la cmara).

Crear el objeto de Misiles


Vamos a crear el misil que se pondr en marcha cuando el usuario hace clic en el botn de disparo. Por ahora vamos a utilizar algo sencillo, una esfera. Crear un objetoprefabricado nuevo haciendo clic en Activos>Crear>Prefab de la barra de men de la Unidad, y cambiarle el nombre a Misiles. Ahora Cree una Sphere ( GameObject >Create Other >Sphere ) . Ahora arrastre el objeto del juego Esfera de la Jerarqua en el Panel de Misiles prefabricada en el panel Proyecto. El icono de la casa prefabricadaya va a cambiar. Usted puede eliminar el objeto Esfera de la vista de la Jerarqua. SUGERENCIA Cualquier objeto en el juego que usted sabe que usted necesita para crear una instancia en tiempo de ejecucin debera en general, es una casa prefabricada.

Escriba el cdigo de Lanzador de Misiles


El controlador de FPS es una casa prefabricada que consta devarios objetos del juego y sus componentes. La Controlador de FPS es en s misma una malla cilndrica que slogira alrededor del yaxis, por lo que si adjuntar el cdigo de inicio (script) para esto, entonces no seremoscapaces de disparar hacia arriba y hacia abajo. Por lo tanto, vamos a colocar nuestro cdigo de programa de lanzamiento para la cmara principal dentro de los FPS Controlador de que la cmara puede mirar en cualquier direccin. Vamos a crear nuestro primer cdigo Javascript que describen el comportamiento del lanzador. Seleccione Activos>Crear>JavaScript, lo que crea un documento en blanco con Javascript. Un nuevo activo aparece en el panel de proyectos tituladoNewBehaviourScript. Cambiar el nombre de este script para missilelauncher. CONSEJO Puede especificar qu editor de cdigo externo que desee utilizar la unidad, haga clic ende la Unidad>Preferencias y luego seleccionando la casilla de Script Editorexterno.

By_Natrostus

Pgina 7

Crear un nuevo directorio dentro de la vista del proyecto denominado WeaponScripts, vamos a poner todas nuestras armas las secuencias de comandos aqu. Mueve el Javascript en missile launcher aqu, y mover el prefabricado de Misiles tambin. Vamos a echar un vistazo a la completa Javascript paramissilelauncher. Puede escribir en el secciones de cdigo a medida que siguen. Pensar desde un nivel alto, qu es lo que queremos acer? Bueno, queremos detectar cuando el usuario ha dado en el botn de disparo, y luego una instancia de un nuevo misil y lanzarlo con una cierta velocidad hacia el lugar donde el usuario estaba buscando. Vamos a examinar el cdigo en detalle:
var projectile : Rigidbody; var speed = 20; function Update() {

Este es el comienzo de la escritura, que define las propiedades y declara una funcin llama Update.
if( Input.GetButtonDown( "Fire1" ) )

Primero quiere comprobar si el usuario pulsa el botn de disparo."Feu 1" se asigna a dos el botn izquierdo del ratn y la configuracin del teclado actual (esto puede ser editado desde el Editor de men Ver> Ajustes del proyecto>De entrada).
{ var instantiatedProjectile : Rigidbody = Instantiate( projectile, transform.position, transform.rotation );

Declaramos una variable para contener una referencia a lainstancia de objeto. El tipo de este variable es Rigidbody, esto es debido a que el misil debe tener un comportamiento fsica. Para crear instancias de un objeto en la unidad que utiliza la funcin de crear una instancia mediante tres parmetros, el objeto de crear una instancia, la posicin en 3D que se debe crear en el, y el a rotacin del objeto debe tener. Tambin existe otro constructor, consulte la API gua, pero vamos a utilizar este por ahora. El primer parmetro, proyectil, es el objeto que desea crear.Entonces, qu es un proyectil de todos modos? El proyectil se establece que dentro del editor. Para permitir que esto suceda, se declara el proyectil variable fuera de cualquier funcin, lo cual lo hace pblico y expone al editor de la Unidad. El objeto del proyectil pudo haber sido creado en el cdigo, sin embargo Si desea modificar (modificar) una variable, es mejor hacerlo desde dentro de la Unidad editor. El segundo parmetro, transform.position, crea el proyectil en la misma posicin en el espacio 3D como el lanzador. Por qu el lanzador? Bueno, el guin que estamos creando ser unido a la lanzadera por lo que si queremos obtener nuestra posicin actual en 3D, transform.position da que para nosotros (la palabra clave de transformacin accede a la transformacin del objetivo del juego donde se une el By_Natrostus Pgina 8

guin). El tercer parmetro, transform.rotation, es similar al segundo parmetro, excepto que crea el misil con las propiedades de rotacin mismas del lanzador:
instantiatedProjectile.velocity = transform.TransformDirection( Vector3( 0, 0, speed ) );

La siguiente parte del cdigo que hace que nuestro movimiento de misiles. Para ello, le damos al misil velocidad, pero en el que la direccin (x, y, o z)? En la vista de la escena, haga clic en el controlador de FPS,las flechas de movimiento aparecen ("W" de prensa si las flechas no aparecen), uno es de color rojo, es una verde, y el otro es azul. El rojo denota el eje x, verde denota la yaxis, y denota azul La serie ZAXIS. En azul se apunta en la direccin que el jugador se enfrenta, queremos dar a nuestros misiles a una velocidad en la ZAXIS. La velocidad es una propiedad de instantiatedProjectile. Cmo sabemos esto? Bueno, instantiatedProjectile es de Rigidbody tipo, y si nos fijamos en la API, vemos que la velocidad es una propiedad. Echa un vistazo a algunas de las otras propiedades que Rigidbody tiene, tambin. Para establecer la velocidad que necesitamos para especificar la velocidad en cada eje. Sin embargo, existe una ligera tema. Los objetos en 3D se especifican mediante dos modelos de coordenadas, locales y del mundo. En locales el espacio, las coordenadas son relativas al objeto que se est trabajando. En el espacio del mundo, coordenadas son absolutos: hasta, por ejemplo, es siempre la misma direccin para todos los objetos. Rigidbody.velocity se debe especificar en el espacio universal. Por lo tanto, cuando se asigna la velocidad usted necesita para convertir de la ZAXIS en el espacio local (la direccin de avance) a su respectivon mundo de la direccin del espacio. Para ello, utilice el transform.TransformDirection funcin que toma una Vector3 como argumento. speed variable tambin est expuesta, por lo que podemos modificar en el editor.
Physics.IgnoreCollision( instantiatedProjectile. collider, transform.root.collider ); } }

Finalmente, apagamos las colisiones entre el misil y el jugador. Sino lo hizo el misil podra chocar con el jugador cuando se crea una instancia. Mira esto en la API por debajo de IgnoreCollision.

var projectile : Rigidbody; var speed = 20; function Update() { if( Input.GetButtonDown( "Fire1" ) ) { var instantiatedProjectile : Rigidbody = Instantiate( projectile, transform.position, transform.rotation ); instantiatedProjectile.velocity = transform.TransformDirection( Vector3( 0, 0, speed ) ); Physics.IgnoreCollision( instantiatedProjectile. collider, transform.root.collider ); } }

By_Natrostus

Pgina 9

Introduzca el cdigo descrito en Javascript missilelauncher y guardarlo. Conecte el guin missilelauncher al Iniciador en el controlador deFPS. Usted puede confirmar que la secuencia de comandos missilelauncher ahora est unida al Launcher, mediante la seleccin de Lanzador de que en la vista de la Jerarqua y la comprobacin deque el missilelauncher secuencia de comandos se muestra en el panel Inspector. El misil prefabricada que creado previamente no se ha asociadocon el proyectil variable en el script, por lo que debe hacer esto dentro del editor. La variable de proyectil es Tipo Rigidbody, as que primero debemos asegurarnos de que nuestro misil tiene un adjunto Rigidbody. Haga clic en el misil en el panel Proyecto, a continuacin, en la barra de men principal, seleccione Componentes>Fsica>Rigidbody. Esto aade un componente Rigidbody al misiles que quiera disparar. Tenemos que hacer esto como el tipo de objeto que queremos disparar debe coincidir con el tipo de la variable que expone en el guin. Asociar el misil con la variable de proyectil en el guin. En primer lugar, haga clic en Lanzador en el panel Jerarqua, observe el proyectil variable en elmissilelauncher guin de la seccin en el panel Inspector. Ahora arrastra elprefabricado de Misiles de la el panel Proyecto y colquelo en la variable de proyectiles. Ahora bien, si se ejecuta el juego que usted ser capaz de disparar a una pequea esfera que se verse afectada por la gravedad.

explosiones de misiles
Ahora vamos a agregar una explosin cuando el misil choca con otro objeto. Para ello es necesario conectar el comportamiento de los misiles, es decir, crear un nuevo guin y aadir al objeto de Misiles juego. Crear un script de nuevo en blanco mediante la seleccin deactivos> Crear>Javascript y cambio de nombre este nuevo script de proyectil. Arrastre el nuevo guin a la carpetaen la WeaponScripts el panel Proyecto. Entonces, qu queremos que el proyectil que hacer? Queremos detectar cuando el misil ha tenido una colisin y crear una explosin en ese punto. Veamos el cdigo:
var explosion : GameObject; function OnCollisionEnter( collision : Collision ) {

Cualquier cdigo que ponemos dentro de la funcin se ejecuta cada vez OnCollisionEnter el objeto de que el script se encuentra en colisin con otro objeto.
var contact : ContactPoint = collision.contacts[0];

By_Natrostus

Pgina 10

La principal tarea que queremos hacer dentro de la funcinOnCollisionEnter es crear una instancia una nueva explosin en el lugar en el espacio 3D donde el misilchoc. As, de dnde ocurra la colisin? El OnCollisionEnter funcin se pasauna colisin clase que contiene esta informacin. El punto en el que ocurri la colisin es almacena en la variable ContactPoint.
var rotation = Quaternion.FromToRotation( Vector3.up, contact.normal ); var instantiatedExplosion : GameObject = Instantiate( explosion, contact.point, rotation );

Aqu se utiliza la funcin de Instantiate para crear una explosin.Sabemos que crear una instancia toma 3 parmetros: (1) el objeto para crear una instancia, (2) la posicin 3D, y (3) la rotacin del objeto. Vamos a asignar esta a un objeto de juego con un sistema de partculas ms tarde. Tambin querr ceder el presente con el editor, as que vamos a exponer a esta variable por lo que es pblico (se declara que fuera de cualquier funcin). El segundo parmetro, el punto de 3D en el que crear una instancia de la explosin fue determin a partir de la clase de colisin en el punto 2. El tercer parmetro, la rotacin para ajustar la explosin, necesita alguna explicacin. Nosotros desea que la rotacin de la explosin de modo que los yaxis de la explosin sigue a lo largo la superficie normal de la superficie del misil choc con. Esto significa que para las paredes la explosin debe mirar hacia fuera, para los pisos que seencuentran dirigidas hacia arriba. As que lo que queremos que hacer es traducir el yaxis de la explosin en el espacio local (la yaxis es hacia arriba), para la superficie normal (en el espacio universal) del objeto que sechoc con el. Esencialmente la rotacin es decir "hacer el yaxis del punto de objeto en la misma direccin que el normal de la superficie con la que choc '.
Destroy( gameObject ); }

Por ltimo, queremos hacer que el misil desaparecer del juego, ya que ha chocado, que se realiza llamando al Destroy () con GameObject como un parmetro (GameObject denota el objeto est asociado con la secuencia de comandos). Aqu est el cdigo completo para Projectile.js:
var explosion : GameObject; function OnCollisionEnter( collision : Collision ) { var contact : ContactPoint = collision.contacts[0]; var rotation = Quaternion.FromToRotation( Vector3.up, contact.normal ); var instantiatedExplosion : GameObject = Instantiate( explosion, contact.point, rotation ); Destroy( gameObject ); }

Agregue el cdigo Javascript en el proyectil y guardarlo.

By_Natrostus

Pgina 11

Conecte el Javascript proyectil a la prefabricada de misilesmediante la seleccin de componentes>Secuencias de comandos>Proyectil. Ahora tenemos que crear la explosin que queremos que ocurracada vez que choca con misiles. En primer lugar, crear una nueva prefabricada (llmese explosin)que almacenar el activo explosin. The standard assets contain a nice explosion prefab with a particle system and a light around the explosion. Drag the explosion prefab under Standard Assets/ Particles/explosion into the Hierarchy View. Ajustar la configuracin de la explosin hasta que ests satisfechocon su aspecto, a continuacin, arrastre la explosin de la vista de la Jerarqua en el Prefabexplosin en el Proyecto del panel. Ahora podemos asignar a la explosin de los misiles: Asegurarse de que los misiles prefabricada se ha seleccionado, rellena la variable explosin arrastrando el objeto de explosin en el panel Proyecto a la variable de explosin del misil en el panel Inspector.

Definir el comportamiento de explosin


Ahora tenemos que crear un guin ms que definir el comportamiento de la explosin misma. Create a new script, call it Explosion, and put it in the Weapons folder. Double click on the Explosion script to edit it. Otro tipo de funcin comn para las secuencias de comandos se denomina Inicio (). Cdigo colocado dentro de este se ejecuta una sola vez cuando el objeto al que pertenece se crea una instancia. Todo lo que quiero hacer por ahora es eliminar la explosin del juego despus de una cierta cantidad de tiempo. A hacer esto usamos el Destroy () con un segundo parmetro que especifica cmo que esperar mucho tiempo antes de borrar. Veamos el cdigo :
var explosionTime = 1.0; function Start() { Destroy( gameObject, explosionTime ); }

La variable explosionTime se expone al editor de la Unidad para que pueda ser fcilmente ajustado. Introduzca el cdigo anterior en la secuencia de comandos de explosin, eliminando la funcin Update () en el proceso. Conecte el guin de explosin a la explosin prefabricada, en primer lugar de hacer clic en la explosin prefabricadas y luego seleccionar los componentes> Secuencias de comandos> Explosin. Observe cmo hemos tratado de agrupar el comportamiento tan claramente como posible, el cdigo que se refiere a la explosin se encuentra dentro de la secuencia de comandos que se adjunta a la casa prefabricada de explosin. By_Natrostus Pgina 12

Ejecuta el juego y donde quiera que sus misiles choca con el medio ambiente, que debera ver el sistema de partculas explosin durante un perodo detiempo.

efectos sonoros
El mundo del juego ha sido un poco tranquilo hasta el momento,vamos a aadir un efecto de sonido de nuestra explosin efecto. En primer lugar vamos a asignar un clip de audio a la prefabricadaexplosin. Para permitir que el objeto de explosin al ser capaz de aceptar un clip de audio, se aade el Componente de fuente de audio a la misma desde el men principal (Component > Audio> Audio Source). Se dar cuenta de una de las propiedades de este componente es el Audio Clip. Asignar "RocketLauncherImpact" muestra de audio clip de la casa prefabricada explosin expuso variable. La unidad puede reproducir muchos formatos de audio diferentes. Ejecutar el juego de nuevo y nuestro efecto de sonido de explosindeben ser escuchadas cuando cada uno misiles de impacto.

Adicin de GUI
Ahora vamos a aadir una interfaz de usuario grfica (GUI), ms comnmente conocida como las cabezas para arriba Display (HUD) para el juego. Nuestra sencilla interfaz grfica de usuario slo se va a incluir en una cruz.

Aadir Punteria
Cree un directorio llamado GUI Crear un nuevo guin, lo llaman punto de mira y arrastrarlo a la carpeta de interfaz grfica de usuario. Escriba el siguiente cdigo en Crosshair.js:
var crosshairTexture : Texture2D; var position : Rect; function Start() { position = Rect( ( Screen.width - crosshairTexture.width ) / 2, ( Screen.height crosshairTexture.height ) / 2, crosshairTexture.width, crosshairTexture.height ); } function OnGUI() { GUI.DrawTexture( position, crosshairTexture ); }

By_Natrostus

Pgina 13

Primero creamos dos variables. La primera variable es dondevamos a poner la imagen que vamos a utilizar para nuestra textura. La segunda variable es elrectngulo que se almacenar en la posicin de la textura en la pantalla. Dentro de la funcin start () se calcula que la textura se dibuja. En el interior de el constructor que tiene 4 parmetros que determinan el rectngulodonde se encuentra y lo grande que es. El primer parmetro que nos dice dnde est ellado izquierdo del rectngulo es. El segundo parmetro establece la parte inferior del rectngulo. Los parmetros tercero y cuarto determinar la anchura y altura del rectngulo. Dentro de OnGUI () se utiliza la funcionalidad de la clase de interfaz grfica de usuario para dibujar elementos en la pantalla. En este caso llamamos DrawTexture () y pasar de la posicin ycrosshairTexture. Este funcin entonces se basar nuestra forma de cruz en el centro de la pantalla. Guarda el script. Crear un nuevo objeto de juego vaco y cambiarle el nombre "GUI". Arrastre el punto de mira de secuencia de comandos en el juego de objetos GUI. Seleccione el objeto de interfaz grfica de usuario del juego y luego arrastrar la textura objetivo encontrar en texturas / objetivo desde el punto de vista del proyecto a la variable de textura Crosshair Texture en la ventana Presione jugar y debe haber una cruz en el centro de la pantalla del juego

fsica
Ahora queremos que los objetos de nuestro entorno a comportarse de forma ms natural posible, esto es lograrse mediante la adicin de la fsica. En esta seccin vamos aagregar objetos con el medio ambiente que se trasladar al ser golpeado con nuestro misil. En primer lugarhay algunos trminos nuevos explicar.

By_Natrostus

Pgina 14

Update
Anteriormente, hemos entrado en cdigo dentro de una funcin de actualizacin, de modo que podemos ejecutar que el cdigo de cada cuadro. Un ejemplo fue el de detectar si el usuario haba dado en el botn de disparo. Sin embargo, la tasa de marco no es un valor regular, ya quedepende de la complejidad del Esta escena, etc calendario irregular entre fotogramas puede llevara la fsica inestables. Por lo tanto, cada vez que desee actualizar los objetos en el juego que implicanla fsica (rigidbodies), cdigo debe ser colocado dentro de una funcin FixedUpdate. El valor deltaTime en la unidad se utiliza para determinar el tiempo transcurrido entre la representacin de dos aos consecutivos marcos. Una distincin general entre actualizacin y funciones FixedUpdatees como sigue: Update () el cdigo dentro de la funcin por lo general las actualizaciones comportamiento de los jugadores, la lgica del juego, etc El valor de deltaTime no es coherente cuando se usa dentro de esta funcin. FixedUpdate () el cdigo dentro de esta funcin actualiza normalmente rigidbodies lo largo del tiempo (el comportamiento de la fsica). El deltaTime siempre devuelve el mismo valor cuando se le llama dentro de un FixedUpdate funcin. La Frecuencia Con La Que se llama FixedUpdate s EspecficaMEDIANTE el paso de Tiempo Fijo Propiedad en La Opcin Editar del men Ver> Ajustes del Proyecto> El Tiempo y You can also servicios Alterado. Este propiedad contiene el tiempo en segundos para obtener losfotogramas por segundo valor y tomar la recproco de este valor. SUGERENCIA Al modificar el valor de paso de tiempo fijo (lo que significa fotogramas por segundo), tener cuidado para lograr un equilibrio, un pequeo paso de tiempole dar la fsica ms estables (mayor precisin), sin embargo, el rendimiento del juego se ver afectada. Asegrese de que el juego se ejecuta de forma rpida y la fsica parecen realistas. El plazo final para explicar en esta seccin es el rendimiento. Esto puede ser considerado como una declaracin para detener la ejecucin de la funcin actual. As que vamos a volver a nuestro juego, qu es lo que queremos hacer: Permite al usuario disparar un misil (ya realizada).
Si el misil choca con otro rigidbody, determinar si hay otros objetos

en la vecindad que han rigidbodies adjunta.


Para cada rigidbody dentro de la fuerza de la explosin, les dan una fuerza hacia

arriba en direccin, haciendo que reaccione al misil. Veamos el cdigo de la explosin Javascript actualizacin:
var explosionTime = 1.0; var explosionRadius = 5.0; var explosionPower = 2000.0; function Start() { //Destroy the explosion in x seconds, //this will give the particle system and audio enough time to finish playing Destroy( gameObject, explosionTime ); //Find all nearby colliders var colliders : Collider[] = Physics.OverlapSphere( transform.position, By_Natrostus explosionRadius );

Pgina 15

En primer lugar, determinar si hay algn objeto con colisionadorescerca de donde el misil aterriz. El Physics.OverlapSphere funcin de la clase () toma dos parmetros: un Posicin 3D y radio y devuelve una matriz de los colisionadores que estn contenidos dentro la esfera definida.
//Apply a force to all surrounding rigid bodies. for( var hit in colliders ) {

Una vez que la matriz se ha obtenido, cada uno de los rigidbodiesunido a los colisionadores se puede dar una fuerza en una direccin determinada.
if( hit.rigidbody ) { hit.rigidbody.AddExplosionForce( explosionPower, transform.position, explosionRadius ); } }

A continuacin se aade una fuerza (explosionPower) en la direccin hacia arriba (yaxis), en la ubicacin donde el misil cay (transform.position). Sin embargo, como el efecto de explosiones disminuir la distancia, la fuerza no debe ser constante durante todo el radio. Rigidbodies ms cerca del borde de la circunferencia debera tener un efecto menor aplicado que los objetos en el epicentro de la explosin. Este efecto se toma en consideracin por esta funcin. El explosionPower expuestos variables y pueden explosionRadius ser fcilmente ajustado para crear un efecto adecuado.
//If we have a particle emitter attached, emit particles for .5 seconds if( particleEmitter ) { particleEmitter.emit = true; yield WaitForSeconds( 0.5 ); particleEmitter.emit = false; } }

Si un emisor de partculas se une a nuestra casa prefabricada de explosin a continuacin, iniciar las partculas que emiten, esperar a 0,5 segundos (rendimiento), y luego dejar que emite. Aqu est el cdigo completo para Explosion.js:

By_Natrostus

Pgina 16

var explosionTime = 1.0; var explosionRadius = 5.0; var explosionPower = 2000.0; function Start() { //Destroy the explosion in x seconds, //this will give the particle system and audio enough time to finish playing Destroy( gameObject, explosionTime ); //Find all nearby colliders var colliders : Collider[] = Physics.OverlapSphere( transform.position, explosionRadius ); //Apply a force to all surrounding rigid bodies. for( var hit in colliders ) { if( hit.rigidbody ) { hit.rigidbody.AddExplosionForce( explosionPower, transform.position, explosionRadius ); } } //If we have a particle emitter attached, emit particles for .5 seconds if( particleEmitter ) { particleEmitter.emit = true; yield WaitForSeconds( 0.5 ); particleEmitter.emit = false; } }

Actualizacin de la explosin de Javascript con el nuevo cdigo y guardar el script. Vamos a crear objetos para disparar. Crear un cubo en la escena y adjuntar una rigidbody. Duplica el cubo varias veces y se dispersan a su alrededor.

Prueba el juego de nuevo y tirar los objetos que han rigidbodiesunidos. ellos Ahora debe reaccionar con una fuerza hacia arriba. Adems, trate de no disparar a los objetos directamente, pero cerca de ellos. Estodemostrar claramente cmo la explosin al alza se aplica una fuerza sobre un radio y no slo a cada objetdirectamente. By_Natrostus Pgina 17

G u a r d a

t u

e s c e n a

Agradecimiento Original :
Un agradecimiento especial a Ante Joachim (cdigo) y EthanVosburgh (grficos) por su ayuda en la elaboracin de este tutorial. El siguiente tutorial de la serie te mostrar cmo construir sobre estas bases mediante la introduccin de conceptos ms avanzados, tales como Amnista Internacional y mltiples armas.

Agredecimientos Traductor English Spanish :


Un agradecimiento a Natrostus de (www.taringa.net) o Gamespub de (www.youtube.com) por traducir esta Gua oficial del Unity3D. Esta Gua es la misma que sale en la pagina oficial del unity3d la que te ensea los tutoriales. Solo cambia el idioma todo lo dems es idntico.

La traduccin la hice frase por frase con el Google Traductor, as que puede que haya algunas que otras faltas de ortografa.

Proximamente
Proximamente traduire la parte 2 del tutorial de fps de la pagina de unity 3d. Gracias. Espero Que Os Haya Servido.

By_Natrostus

Pgina 18

También podría gustarte