SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
By_Natrostus Página 1
Traducido Por El Traducctor De Google, Puede Haber Alguna Falta. Disfrutenlo
By_Natrostus Página 2
INDEX
1. Parte 1: Introducción
Requisitos
Inicio de un nuevo proyecto
Configuración del entorno del juego
Agregar el personaje principal,
Adición de un arma
Crear el objeto de Misiles
Explosiones de misiles
Los efectos de sonido
Adición de una interfaz gráfica de usuario
Física
Agradecimientos
By_Natrostus Página 3
Parte 1 : Introducción
En este tutorial se detallará la
forma en
para hacer una sencilla Primera
Person Shooter (FPS). No se
introducir 3D fundamental
programación de juegos
los conceptos y dar consejos
sobre
cómo pensar como un juego
programador.
Requisitos previos
Este tutorial se supone que está familiarizado con la interfaz de la Unidad y
la programación básica conceptos.
Inicio de un nuevo proyecto
descargar
FPS_Tutorial.zip,
descomprima y abra el
la carpeta del proyecto en
Unity.
Importación de la
Norma
Los activos del
paquete Unidad
de su paquetes estándar
carpeta en la Unidad
está instalado.
By_Natrostus Página 4
Después de la importación, que se
véase la Unidad está construido en el "estándar Activos "en el proyecto
Grupo. Cuando creamos nuevos activos, lo mejor es ponerlos en las carpetas que
los grupos de acuerdo a su función, por ejemplo, Rocket, explosión, Audio, etc.
Configuración del entorno del juego
Una vez que los bienes hayan sido importados, te darás 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 "opción”. Activar esta opción. Si no hacemos esto, el jugador se
simplemente se caen a través del nivel (sin colisiones).
Arrastre el mainLevelMesh en la escena.
No hay necesidad de añadir una luz a la escena, el nivel ya está
totalmente lightmapped. La nivel de importación para todos los mapas de luz utiliza la
iluminación que nos permite utilizar probaked. Lightmaps son muy buenas para el
rendimiento, especialmente si usted desea crear una configuración de
iluminación compleja. Ahora está listo para añadir un carácter en el medio ambiente.
By_Natrostus Página 5
Agregar el personaje principal
Ahora vamos a añadir en un personaje para el jugador de controlar.La unidad tiene
incorporado en el prefabricados específicamente para un firstPerson
controlador. Esto se puede encontrar en el panel Proyecto en el activo estándar>
Prefabricados.
Para agregar el controlador en primera persona, haga clic en la flecha al lado
de los activos en el estándar
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 debería 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 ubicación en el espacio 3D para el objeto (si es que no se
ve a continuación, 3 flechas presione el botón "W" clave), y una malla blanca que
muestra vista del objeto (en que está buscando). El controlador de FPS es ahora
la cámara por defecto, moviendo este objeto, se cambia el punto de vista actual en la
vista del juego.También te darás cuenta que el controlador de FPS tiene un icono de la
cámara en la parte superior de la misma. Mueva el carácter tan que está por
encima del nivel del suelo en el medio ambiente.
Como ya no tenemos ninguna necesidad de que la cámara principal, puede
eliminarlo.
Pulse el botón Reproducir, ahora debería ser capaz de moverse por el nivel con
el ratón 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 Página 6
Adición de un arma
Ahora vamos a dar al jugador un objeto de tipo granada para lanzar en el medio
ambiente. Para ello, tendrás 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 cámara está apuntando. Sin embargo, primero vamos a pensar en nuestro
carácter de juego y sus armas. Nuestro personaje del juego es visto a través de
la vista en primera persona, con la cámara en posición 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 añadir en un
objeto de juego para representar el lanzador de la granada, y el lugar donde la mano
del jugador sería cuando tienen estas armas. Esto asegura que el objeto se dispara
partir de la correcta ubicación.
Crear el programa de lanzamiento de armas
En primer lugar, vamos a añadir 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 Jerarquía. Nota, este
objeto es invisible como es objeto vacío, sin embargo, es sólo un marcador de
posición para nuestro lanzador de misiles.
Ahora vamos a entrar en cerca de nuestro controlador de FPS para que podamos
ver dónde colocar el arma de lanzador.
Seleccione el controlador de FPS en el panel de jerarquía 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 Jerarquía y elija
Game Object >Move to view desde el menú principal. Observe cómo 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 alteración de la ubicación de este objeto, sin necesidad de cambiar ningún
código.
By_Natrostus Página 7
Asegúrese de que su diseño de la ventana La unidad está en modo de 2 por 3
, (Window >Layouts >2by 3 )y pulse el botón Reproducir. Haga Launcher está
seleccionado en la jerarquía 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 Jerarquía. Está bien para
romper el Prefab conexión. Ahora ejecuta el juego de nuevo y ver la vista de la
escena, el Lanzador de ahora debe moverse con nuestro carácter. Hemos asociado la
Lanzador de objeto en el juego con un objeto que se mueve en los 3 ejes (la cámara).
Crear el objeto de Misiles
Vamos a crear el misil que se pondrá en marcha cuando el usuario hace clic en
el botón 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 Jerarquía 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 Jerarquía.
SUGERENCIA Cualquier objeto en el juego que usted sabe que usted necesita para
crear una instancia en tiempo de ejecución debería en general, es una casa
prefabricada.
Escriba el código 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 cilíndrica que sólogira alrededor del yaxis, por lo que si
adjuntar el código de inicio (script) para esto, entonces no seremoscapaces de
disparar hacia arriba y hacia abajo. Por lo tanto, vamos a colocar nuestro código
de programa de lanzamiento para la cámara principal dentro de los FPS Controlador
de que la cámara puede mirar en cualquier dirección.
Vamos a crear nuestro primer código 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 código externo que desee utilizar la
unidad, haga clic ende la Unidad>Preferencias y luego seleccionando la casilla
de Script Editorexterno.
By_Natrostus Página 8
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 también.
Vamos a echar un vistazo a la completa Javascript paramissilelauncher. Puede
escribir en el secciones de código 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 botón 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 código en detalle:
Este es el comienzo de la escritura, que define las propiedades y declara una función
llama Update.
Primero quiere comprobar si el usuario pulsa el botón de disparo."Feu 1" se asigna
a dos el botón izquierdo del ratón y la configuración del teclado actual (esto puede
ser editado desde el Editor de menú Ver> Ajustes del proyecto>De entrada).
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 física.
Para crear instancias de un objeto en la unidad que utiliza la función de crear una
instancia mediante tres parámetros, el objeto de crear una instancia, la posición en
3D que se debe crear en el, y el a rotación del objeto debe tener. También existe otro
constructor, consulte la API guía, pero vamos a utilizar este por ahora.
El primer parámetro, 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 función, lo cual lo
hace público y expone al editor de la Unidad. El objeto del proyectil pudo haber sido
creado en el código, sin embargo Si desea modificar (modificar) una variable, es
mejor hacerlo desde dentro de la Unidad editor.
El segundo parámetro, transform.position, crea el proyectil en la misma posición
en el espacio 3D como el lanzador. ¿Por qué el lanzador? Bueno, el guión que
estamos creando será unido a la lanzadera por lo que si queremos obtener nuestra
posición actual en 3D, transform.position da que para nosotros (la palabra clave de
transformación accede a la transformación del objetivo del juego donde se une el
var projectile : Rigidbody;
var speed = 20;
function Update()
{
if( Input.GetButtonDown( "Fire1" ) )
{
var instantiatedProjectile : Rigidbody = Instantiate(
projectile, transform.position, transform.rotation );
By_Natrostus Página 9
guión). El tercer parámetro, transform.rotation, es similar al segundo parámetro,
excepto que crea el misil con las propiedades de rotación mismas del lanzador:
La siguiente parte del código que hace que nuestro movimiento de misiles. Para
ello, le damos al misil velocidad, pero en el que la dirección (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 dirección que el jugador se
enfrenta, queremos dar a nuestros misiles a una velocidad en la ZAXIS.
La velocidad es una propiedad de instantiatedProjectile. ¿Cómo 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, también. 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 dirección 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 dirección de avance) a su respectivon mundo de la dirección del
espacio. Para ello, utilice el transform.TransformDirection función que
toma una Vector3 como argumento. speed variable también está expuesta, por lo que
podemos modificar en el editor.
Finalmente, apagamos las colisiones entre el misil y el jugador. Sino lo hizo
el misil podría chocar con el jugador cuando se crea una instancia. Mira esto en la
API por debajo de IgnoreCollision.
instantiatedProjectile.velocity =
transform.TransformDirection( Vector3( 0, 0, speed ) );
Physics.IgnoreCollision( instantiatedProjectile. collider,
transform.root.collider );
}
}
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 Página 10
Introduzca el código descrito en Javascript missilelauncher y guardarlo.
Conecte el guión missilelauncher al Iniciador en el controlador deFPS. Usted
puede confirmar que la secuencia de comandos missilelauncher ahora está
unida al Launcher, mediante la selección de Lanzador de que en la vista de la
Jerarquía y la comprobación 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 continuación, en la barra de menú
principal, seleccione Componentes>Física>Rigidbody. Esto
añade 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 guión.
Asociar el misil con la variable de proyectil en el guión. En primer lugar, haga
clic en
Lanzador en el panel Jerarquía, observe el proyectil variable en elmissilelauncher
guión de la sección en el panel Inspector. Ahora arrastra elprefabricado de Misiles de
la el panel Proyecto y colóquelo en la variable de proyectiles.
Ahora bien, si se ejecuta el juego que usted será capaz de disparar a una
pequeña esfera que se verse afectada por la gravedad.
explosiones de misiles
Ahora vamos a agregar una explosión cuando el misil choca con otro objeto.
Para ello es necesario conectar el comportamiento de los misiles, es decir, crear un
nuevo guión y añadir al objeto de Misiles juego.
Crear un script de nuevo en blanco mediante la selección deactivos>
Crear>Javascript y cambio de nombre este nuevo
script de proyectil. Arrastre el nuevo guión a la carpetaen la WeaponScripts el panel
Proyecto.
Entonces, ¿qué queremos que el proyectil que hacer? Queremos detectar cuando el
misil ha tenido una colisión y crear una explosión en ese punto. Veamos el código:
Cualquier código que ponemos dentro de la función se ejecuta cada
vez OnCollisionEnter el objeto de que el script se encuentra en colisión con otro
objeto.
var explosion : GameObject;
function OnCollisionEnter( collision : Collision )
{
var contact : ContactPoint = collision.contacts[0];
By_Natrostus Página 11
La principal tarea que queremos hacer dentro de la funciónOnCollisionEnter es crear
una instancia una nueva explosión en el lugar en el espacio 3D donde el
misilchocó. Así, ¿de dónde ocurra la colisión? El OnCollisionEnter función se
pasauna colisión clase que contiene esta información. El punto en el que ocurrió la
colisión es almacena en la variable ContactPoint.
Aquí se utiliza la función de Instantiate para crear una explosión.Sabemos que crear
una instancia toma 3 parámetros: (1) el objeto para crear una instancia, (2) la
posición 3D, y (3) la rotación del objeto.
Vamos a asignar esta a un objeto de juego con un sistema de partículas más
tarde. También querrá ceder el presente con el editor, así que vamos a exponer a esta
variable por lo que es público (se declara que fuera de cualquier función).
El segundo parámetro, el punto de 3D en el que crear una instancia de la explosión fue
determinó a partir de la clase de colisión en el punto 2.
El tercer parámetro, la rotación para ajustar la explosión, necesita alguna
explicación. Nosotros desea que la rotación de la explosión de modo que los yaxis de
la explosión sigue a lo largo la superficie normal de la superficie del misil chocó
con. Esto significa que para las paredes la explosión 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 explosión 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 rotación es decir "hacer el yaxis del punto de objeto en la misma
dirección que el normal de la superficie con la que chocó '.
Por último, queremos hacer que el misil desaparecer del juego, ya que ha chocado,
que se realiza llamando al Destroy () con GameObject como un parámetro
(GameObject denota el objeto está asociado con la secuencia de comandos).
Aquí está el código completo para Projectile.js:
Agregue el código Javascript en el proyectil y guardarlo.
var rotation = Quaternion.FromToRotation( Vector3.up, contact.normal );
var instantiatedExplosion : GameObject = Instantiate(
explosion, contact.point, rotation );
Destroy( gameObject );
}
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 );
}
By_Natrostus Página 12
Conecte el Javascript proyectil a la prefabricada de misilesmediante la
selección de componentes>Secuencias de comandos>Proyectil.
Ahora tenemos que crear la explosión que queremos que ocurracada vez
que choca con misiles.
En primer lugar, crear una nueva prefabricada (llámese explosión)que
almacenará el activo explosión.
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 configuración de la explosión hasta que estés satisfechocon su
aspecto, a continuación, arrastre la explosión de la vista de la Jerarquía en
el Prefabexplosión en el Proyecto del panel. Ahora podemos asignar a la
explosión de los misiles:
Asegurarse de que los misiles prefabricada se ha seleccionado, rellena la
variable explosión arrastrando el objeto de explosión en el panel Proyecto a la
variable de explosión del misil en el panel Inspector.
Definir el comportamiento de explosión
Ahora tenemos que crear un guión más que definir el comportamiento de la explosión
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 función común para las secuencias de comandos se denomina Inicio
(). Código 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
explosión del juego después de una cierta cantidad de tiempo. A hacer esto usamos
el Destroy () con un segundo parámetro que especifica cómo que esperar mucho
tiempo antes de borrar. Veamos el código :
La variable explosionTime se expone al editor de la Unidad para que pueda
ser fácilmente ajustado.
Introduzca el código anterior en la secuencia de comandos de
explosión, eliminando la función Update () en el proceso.
Conecte el guión de explosión a la explosión prefabricada, en primer lugar de
hacer clic en la explosión prefabricadas y luego seleccionar los componentes>
Secuencias de comandos> Explosión.
Observe cómo hemos tratado de agrupar el comportamiento tan claramente como
posible, el código que se refiere a la explosión se encuentra dentro de la secuencia de
comandos que se adjunta a la casa prefabricada de explosión.
var explosionTime = 1.0;
function Start()
{
Destroy( gameObject, explosionTime );
}
By_Natrostus Página 13
Ejecuta el juego y donde quiera que sus misiles choca con el medio
ambiente, que debería ver el sistema de partículas explosión durante un período
detiempo.
efectos sonoros
El mundo del juego ha sido un poco tranquilo hasta el momento,vamos a añadir un
efecto de sonido de nuestra explosión efecto.
En primer lugar vamos a asignar un clip de audio a la prefabricadaexplosión.
Para permitir que el objeto de explosión al ser capaz de aceptar un clip de
audio, se añade 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 explosión expuso variable. La unidad puede reproducir muchos
formatos de audio diferentes.
Ejecutar el juego de nuevo y nuestro efecto de sonido de explosióndeben ser
escuchadas cuando cada uno misiles de impacto.
Adición de GUI
Ahora vamos a añadir una interfaz de usuario gráfica (GUI), más comúnmente
conocida como las cabezas para arriba
Display (HUD) para el juego. Nuestra sencilla interfaz gráfica de usuario sólo se va
a incluir en una cruz.
Añadir Punteria
Cree un directorio llamado GUI
Crear un nuevo guión, lo llaman punto de mira y arrastrarlo a la carpeta
de interfaz gráfica de usuario.
Escriba el siguiente código 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 Página 14
Primero creamos dos variables. La primera variable es dondevamos a poner la imagen
que vamos a utilizar para nuestra textura. La segunda variable es elrectángulo que se
almacenar en la posición de la textura en la pantalla.
Dentro de la función start () se calcula que la textura se dibuja. En el interior de
el constructor que tiene 4 parámetros que determinan el rectángulodonde se encuentra
y lo grande que es. El primer parámetro que nos dice dónde está ellado izquierdo del
rectángulo es. El segundo parámetro establece la parte inferior del rectángulo. Los
parámetros tercero y cuarto determinar la anchura y altura del rectángulo.
Dentro de OnGUI () se utiliza la funcionalidad de la clase de interfaz gráfica de
usuario para dibujar elementos en la pantalla. En este caso llamamos DrawTexture () y
pasar de la posición ycrosshairTexture. Este función entonces se basará nuestra forma
de cruz en el centro de la pantalla.
Guarda el script.
Crear un nuevo objeto de juego vacío 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 gráfica 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
física
Ahora queremos que los objetos de nuestro entorno a comportarse de forma más
natural posible, esto es lograrse mediante la adición de la física. En esta
sección vamos aagregar objetos con el medio ambiente que se trasladará al ser
golpeado con nuestro misil. En primer lugarhay algunos términos nuevos explicar.
By_Natrostus Página 15
Update
Anteriormente, hemos entrado en código dentro de una función de actualización, de
modo que podemos ejecutar que el código de cada cuadro. Un ejemplo fue el de
detectar si el usuario había dado en el botón 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 física inestables. Por lo
tanto, cada vez que desee actualizar los objetos en el juego que implicanla
física (rigidbodies), código debe ser colocado dentro de una función FixedUpdate. El
valor deltaTime en la unidad se utiliza para determinar el tiempo transcurrido entre
la representación de dos años consecutivos marcos.
Una distinción general entre actualización y funciones FixedUpdatees como sigue:
· Update () el código dentro de la función por lo general las
actualizaciones comportamiento de los jugadores, la lógica del juego, etc El valor
de deltaTime no es coherente cuando se usa dentro de esta función.
· FixedUpdate () el código dentro de esta función actualiza normalmente rigidbodies lo
largo del tiempo (el comportamiento de la física). El deltaTime siempre devuelve el
mismo valor cuando se le llama dentro de un FixedUpdate función.
La Frecuencia Con La Que se llama FixedUpdate sí EspecíficaMEDIANTE el paso de
Tiempo Fijo Propiedad en La Opción 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 recíproco 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 pequeño paso de tiempole
dará la física más estables (mayor precisión), sin embargo, el rendimiento del juego se
verá afectada. Asegúrese de que el juego se ejecuta de forma rápida y la
física parecen realistas.
El plazo final para explicar en esta sección es el rendimiento. Esto puede ser
considerado como una declaración para detener la ejecución de la función 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 explosión, les dan una fuerza hacia
arriba en dirección, haciendo que reaccione al misil.
Veamos el código de la explosión Javascript actualización:
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 );
By_Natrostus Página 16
En primer lugar, determinar si hay algún objeto con colisionadorescerca de donde el
misil aterrizó. El Physics.OverlapSphere función de la clase () toma dos
parámetros: un Posición 3D y radio y devuelve una matriz de los colisionadores que
están contenidos dentro la esfera definida.
Una vez que la matriz se ha obtenido, cada uno de los rigidbodiesunido
a los colisionadores se puede dar una fuerza en una dirección determinada.
A continuación se añade una fuerza (explosionPower) en la dirección hacia
arriba (yaxis), en la ubicación 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 más cerca del borde de la circunferencia debería
tener un efecto menor aplicado que los objetos en el epicentro de la explosión. Este
efecto se toma en consideración por esta
función. El explosionPower expuestos variables y pueden explosionRadius ser
fácilmente ajustado para crear un efecto adecuado.
Si un emisor de partículas se une a nuestra casa prefabricada de explosión a
continuación, iniciar las partículas que emiten, esperar a 0,5 segundos (rendimiento), y
luego dejar que emite.
Aquí está el código completo para Explosion.js:
//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;
}
}
By_Natrostus Página 17
Actualización de la explosión de Javascript con el nuevo código 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. Además, trate de no disparar a
los objetos directamente, pero cerca de ellos. Estodemostrará claramente cómo la
explosión al alza se aplica una fuerza sobre un radio y no sólo a
cada objetdirectamente.
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;
}
}
By_Natrostus Página 18
G u a r d a t u e s c e n a
Agradecimiento Original :
Un agradecimiento especial a Ante Joachim (código) y EthanVosburgh (gráficos) por
su ayuda en la elaboración de este tutorial.
Agredecimientos Traductor English  Spanish :
Un agradecimiento a Natrostus de (www.taringa.net) o Gamespub de
(www.youtube.com) por traducir esta Guía oficial del Unity3D.
Esta Guía es la misma que sale en la pagina oficial del unity3d la que te enseña los
tutoriales. Solo cambia el idioma todo lo demás es idéntico.
La traducción la hice frase por frase con el Google Traductor, así que puede que haya
algunas que otras faltas de ortografía.
Proximamente…
Proximamente traduire la parte 2 del tutorial de fps de la pagina de unity 3d.
Gracias. Espero Que Os Haya Servido.
El siguiente tutorial de la serie te mostrará cómo construir sobre estas bases
mediante la introducción de conceptos más avanzados, tales como Amnistía
Internacional y múltiples
armas.

Mais conteúdo relacionado

Mais procurados

Creando juegos con game maker 8
Creando juegos con game maker 8Creando juegos con game maker 8
Creando juegos con game maker 8
Henrydarklite
 
Tutorial game maker
Tutorial game makerTutorial game maker
Tutorial game maker
Joserichi
 
Introduccion A Xna By Lasa
Introduccion A Xna By LasaIntroduccion A Xna By Lasa
Introduccion A Xna By Lasa
Luis A. Sanchez
 

Mais procurados (20)

Unity
UnityUnity
Unity
 
Slash friday: Unity 3D - Pasando nuestra primera pantalla
Slash friday: Unity 3D - Pasando nuestra primera pantallaSlash friday: Unity 3D - Pasando nuestra primera pantalla
Slash friday: Unity 3D - Pasando nuestra primera pantalla
 
Diseño y Desarrollo de Videojuegos
Diseño y Desarrollo de VideojuegosDiseño y Desarrollo de Videojuegos
Diseño y Desarrollo de Videojuegos
 
GAME MAKER
GAME MAKERGAME MAKER
GAME MAKER
 
Manual y temario unity
Manual y temario unityManual y temario unity
Manual y temario unity
 
10a daniel felipe peña creación de un videojuego
10a daniel felipe peña creación de un videojuego10a daniel felipe peña creación de un videojuego
10a daniel felipe peña creación de un videojuego
 
Creando juegos con game maker 8
Creando juegos con game maker 8Creando juegos con game maker 8
Creando juegos con game maker 8
 
Tutorial game maker
Tutorial game makerTutorial game maker
Tutorial game maker
 
Unity
UnityUnity
Unity
 
Game Maker Primera parte
Game Maker Primera parteGame Maker Primera parte
Game Maker Primera parte
 
Droidtick
DroidtickDroidtick
Droidtick
 
Escritorios 3D en Linux
Escritorios 3D en LinuxEscritorios 3D en Linux
Escritorios 3D en Linux
 
Game maker
Game makerGame maker
Game maker
 
Tutorial Game Maker segunda parte
Tutorial Game Maker segunda parteTutorial Game Maker segunda parte
Tutorial Game Maker segunda parte
 
Xna game studio presentación 01
Xna game studio   presentación 01Xna game studio   presentación 01
Xna game studio presentación 01
 
Xna game studio presentación 02
Xna game studio   presentación 02Xna game studio   presentación 02
Xna game studio presentación 02
 
Introduccion A Xna By Lasa
Introduccion A Xna By LasaIntroduccion A Xna By Lasa
Introduccion A Xna By Lasa
 
Scratch en el aula primaria desde cero. Pensamiento computacional y algorítmi...
Scratch en el aula primaria desde cero. Pensamiento computacional y algorítmi...Scratch en el aula primaria desde cero. Pensamiento computacional y algorítmi...
Scratch en el aula primaria desde cero. Pensamiento computacional y algorítmi...
 
JMonkeyEngine Introducción
JMonkeyEngine IntroducciónJMonkeyEngine Introducción
JMonkeyEngine Introducción
 
Desarrollo y produccion de videojuegos resumen
Desarrollo y produccion de videojuegos resumenDesarrollo y produccion de videojuegos resumen
Desarrollo y produccion de videojuegos resumen
 

Semelhante a Tutorial unity3d 1_español

2. tutorial unity3d-disparo
2.  tutorial unity3d-disparo2.  tutorial unity3d-disparo
2. tutorial unity3d-disparo
Victor Aravena
 
1. tutorial unity3d introducción
1.  tutorial unity3d introducción1.  tutorial unity3d introducción
1. tutorial unity3d introducción
Victor Aravena
 
0a476c4b48d664068c084ccc201d13
0a476c4b48d664068c084ccc201d130a476c4b48d664068c084ccc201d13
0a476c4b48d664068c084ccc201d13
Roberto Montanez
 
Manual scratch
Manual scratchManual scratch
Manual scratch
almajucas
 

Semelhante a Tutorial unity3d 1_español (20)

3. tutorialguiabasico 2014
3.  tutorialguiabasico 20143.  tutorialguiabasico 2014
3. tutorialguiabasico 2014
 
1 introduccion a la gui de unity3 d
1   introduccion a la gui de unity3 d1   introduccion a la gui de unity3 d
1 introduccion a la gui de unity3 d
 
2. tutorial unity3d-disparo
2.  tutorial unity3d-disparo2.  tutorial unity3d-disparo
2. tutorial unity3d-disparo
 
2. tutorial unity3d-disparo
2.  tutorial unity3d-disparo2.  tutorial unity3d-disparo
2. tutorial unity3d-disparo
 
Gruia juego
Gruia juegoGruia juego
Gruia juego
 
1. tutorial unity3d introducción
1.  tutorial unity3d introducción1.  tutorial unity3d introducción
1. tutorial unity3d introducción
 
1. tutorial unity3d introducción
1.  tutorial unity3d introducción1.  tutorial unity3d introducción
1. tutorial unity3d introducción
 
Laptop xosecundariascratch
Laptop xosecundariascratchLaptop xosecundariascratch
Laptop xosecundariascratch
 
Scratch informacion
Scratch informacionScratch informacion
Scratch informacion
 
Manual de scratch
Manual de scratchManual de scratch
Manual de scratch
 
0a476c4b48d664068c084ccc201d13
0a476c4b48d664068c084ccc201d130a476c4b48d664068c084ccc201d13
0a476c4b48d664068c084ccc201d13
 
TALLER VIDEOJUEGO 2D
TALLER VIDEOJUEGO 2DTALLER VIDEOJUEGO 2D
TALLER VIDEOJUEGO 2D
 
Manual scratch
Manual scratchManual scratch
Manual scratch
 
Manual scratch
Manual scratchManual scratch
Manual scratch
 
Manual scratch
Manual scratchManual scratch
Manual scratch
 
Scratch
ScratchScratch
Scratch
 
Manual Scratch
Manual ScratchManual Scratch
Manual Scratch
 
Manual de Scratch
Manual de ScratchManual de Scratch
Manual de Scratch
 
Manual scratch
Manual scratchManual scratch
Manual scratch
 
Manual scratch
Manual scratchManual scratch
Manual scratch
 

Mais de Omar Eduardo Sojo Romero (8)

Television 130120154310-phpapp01 [reparado]
Television 130120154310-phpapp01 [reparado]Television 130120154310-phpapp01 [reparado]
Television 130120154310-phpapp01 [reparado]
 
Ellenguajetelevisivo 121217153221-phpapp01
Ellenguajetelevisivo 121217153221-phpapp01Ellenguajetelevisivo 121217153221-phpapp01
Ellenguajetelevisivo 121217153221-phpapp01
 
Proyecto robotica educativa_blog
Proyecto robotica educativa_blogProyecto robotica educativa_blog
Proyecto robotica educativa_blog
 
Sensores
SensoresSensores
Sensores
 
Curso Robotica Educativa
Curso Robotica EducativaCurso Robotica Educativa
Curso Robotica Educativa
 
00463531f7b1b6cf3f000000
00463531f7b1b6cf3f00000000463531f7b1b6cf3f000000
00463531f7b1b6cf3f000000
 
Tarea 2 presentacion_plataforma_you_tube
Tarea 2 presentacion_plataforma_you_tubeTarea 2 presentacion_plataforma_you_tube
Tarea 2 presentacion_plataforma_you_tube
 
Tarea 2 presentacion
Tarea 2 presentacionTarea 2 presentacion
Tarea 2 presentacion
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 

Tutorial unity3d 1_español

  • 1. By_Natrostus Página 1 Traducido Por El Traducctor De Google, Puede Haber Alguna Falta. Disfrutenlo
  • 2. By_Natrostus Página 2 INDEX 1. Parte 1: Introducción Requisitos Inicio de un nuevo proyecto Configuración del entorno del juego Agregar el personaje principal, Adición de un arma Crear el objeto de Misiles Explosiones de misiles Los efectos de sonido Adición de una interfaz gráfica de usuario Física Agradecimientos
  • 3. By_Natrostus Página 3 Parte 1 : Introducción En este tutorial se detallará la forma en para hacer una sencilla Primera Person Shooter (FPS). No se introducir 3D fundamental programación de juegos los conceptos y dar consejos sobre cómo pensar como un juego programador. Requisitos previos Este tutorial se supone que está familiarizado con la interfaz de la Unidad y la programación básica conceptos. Inicio de un nuevo proyecto descargar FPS_Tutorial.zip, descomprima y abra el la carpeta del proyecto en Unity. Importación de la Norma Los activos del paquete Unidad de su paquetes estándar carpeta en la Unidad está instalado.
  • 4. By_Natrostus Página 4 Después de la importación, que se véase la Unidad está construido en el "estándar Activos "en el proyecto Grupo. Cuando creamos nuevos activos, lo mejor es ponerlos en las carpetas que los grupos de acuerdo a su función, por ejemplo, Rocket, explosión, Audio, etc. Configuración del entorno del juego Una vez que los bienes hayan sido importados, te darás 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 "opción”. Activar esta opción. Si no hacemos esto, el jugador se simplemente se caen a través del nivel (sin colisiones). Arrastre el mainLevelMesh en la escena. No hay necesidad de añadir una luz a la escena, el nivel ya está totalmente lightmapped. La nivel de importación para todos los mapas de luz utiliza la iluminación que nos permite utilizar probaked. Lightmaps son muy buenas para el rendimiento, especialmente si usted desea crear una configuración de iluminación compleja. Ahora está listo para añadir un carácter en el medio ambiente.
  • 5. By_Natrostus Página 5 Agregar el personaje principal Ahora vamos a añadir en un personaje para el jugador de controlar.La unidad tiene incorporado en el prefabricados específicamente para un firstPerson controlador. Esto se puede encontrar en el panel Proyecto en el activo estándar> Prefabricados. Para agregar el controlador en primera persona, haga clic en la flecha al lado de los activos en el estándar 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 debería 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 ubicación en el espacio 3D para el objeto (si es que no se ve a continuación, 3 flechas presione el botón "W" clave), y una malla blanca que muestra vista del objeto (en que está buscando). El controlador de FPS es ahora la cámara por defecto, moviendo este objeto, se cambia el punto de vista actual en la vista del juego.También te darás cuenta que el controlador de FPS tiene un icono de la cámara en la parte superior de la misma. Mueva el carácter tan que está por encima del nivel del suelo en el medio ambiente. Como ya no tenemos ninguna necesidad de que la cámara principal, puede eliminarlo. Pulse el botón Reproducir, ahora debería ser capaz de moverse por el nivel con el ratón 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.
  • 6. By_Natrostus Página 6 Adición de un arma Ahora vamos a dar al jugador un objeto de tipo granada para lanzar en el medio ambiente. Para ello, tendrás 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 cámara está apuntando. Sin embargo, primero vamos a pensar en nuestro carácter de juego y sus armas. Nuestro personaje del juego es visto a través de la vista en primera persona, con la cámara en posición 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 añadir en un objeto de juego para representar el lanzador de la granada, y el lugar donde la mano del jugador sería cuando tienen estas armas. Esto asegura que el objeto se dispara partir de la correcta ubicación. Crear el programa de lanzamiento de armas En primer lugar, vamos a añadir 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 Jerarquía. Nota, este objeto es invisible como es objeto vacío, sin embargo, es sólo un marcador de posición para nuestro lanzador de misiles. Ahora vamos a entrar en cerca de nuestro controlador de FPS para que podamos ver dónde colocar el arma de lanzador. Seleccione el controlador de FPS en el panel de jerarquía 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 Jerarquía y elija Game Object >Move to view desde el menú principal. Observe cómo 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 alteración de la ubicación de este objeto, sin necesidad de cambiar ningún código.
  • 7. By_Natrostus Página 7 Asegúrese de que su diseño de la ventana La unidad está en modo de 2 por 3 , (Window >Layouts >2by 3 )y pulse el botón Reproducir. Haga Launcher está seleccionado en la jerarquía 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 Jerarquía. Está bien para romper el Prefab conexión. Ahora ejecuta el juego de nuevo y ver la vista de la escena, el Lanzador de ahora debe moverse con nuestro carácter. Hemos asociado la Lanzador de objeto en el juego con un objeto que se mueve en los 3 ejes (la cámara). Crear el objeto de Misiles Vamos a crear el misil que se pondrá en marcha cuando el usuario hace clic en el botón 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 Jerarquía 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 Jerarquía. SUGERENCIA Cualquier objeto en el juego que usted sabe que usted necesita para crear una instancia en tiempo de ejecución debería en general, es una casa prefabricada. Escriba el código 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 cilíndrica que sólogira alrededor del yaxis, por lo que si adjuntar el código de inicio (script) para esto, entonces no seremoscapaces de disparar hacia arriba y hacia abajo. Por lo tanto, vamos a colocar nuestro código de programa de lanzamiento para la cámara principal dentro de los FPS Controlador de que la cámara puede mirar en cualquier dirección. Vamos a crear nuestro primer código 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 código externo que desee utilizar la unidad, haga clic ende la Unidad>Preferencias y luego seleccionando la casilla de Script Editorexterno.
  • 8. By_Natrostus Página 8 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 también. Vamos a echar un vistazo a la completa Javascript paramissilelauncher. Puede escribir en el secciones de código 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 botón 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 código en detalle: Este es el comienzo de la escritura, que define las propiedades y declara una función llama Update. Primero quiere comprobar si el usuario pulsa el botón de disparo."Feu 1" se asigna a dos el botón izquierdo del ratón y la configuración del teclado actual (esto puede ser editado desde el Editor de menú Ver> Ajustes del proyecto>De entrada). 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 física. Para crear instancias de un objeto en la unidad que utiliza la función de crear una instancia mediante tres parámetros, el objeto de crear una instancia, la posición en 3D que se debe crear en el, y el a rotación del objeto debe tener. También existe otro constructor, consulte la API guía, pero vamos a utilizar este por ahora. El primer parámetro, 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 función, lo cual lo hace público y expone al editor de la Unidad. El objeto del proyectil pudo haber sido creado en el código, sin embargo Si desea modificar (modificar) una variable, es mejor hacerlo desde dentro de la Unidad editor. El segundo parámetro, transform.position, crea el proyectil en la misma posición en el espacio 3D como el lanzador. ¿Por qué el lanzador? Bueno, el guión que estamos creando será unido a la lanzadera por lo que si queremos obtener nuestra posición actual en 3D, transform.position da que para nosotros (la palabra clave de transformación accede a la transformación del objetivo del juego donde se une el var projectile : Rigidbody; var speed = 20; function Update() { if( Input.GetButtonDown( "Fire1" ) ) { var instantiatedProjectile : Rigidbody = Instantiate( projectile, transform.position, transform.rotation );
  • 9. By_Natrostus Página 9 guión). El tercer parámetro, transform.rotation, es similar al segundo parámetro, excepto que crea el misil con las propiedades de rotación mismas del lanzador: La siguiente parte del código que hace que nuestro movimiento de misiles. Para ello, le damos al misil velocidad, pero en el que la dirección (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 dirección que el jugador se enfrenta, queremos dar a nuestros misiles a una velocidad en la ZAXIS. La velocidad es una propiedad de instantiatedProjectile. ¿Cómo 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, también. 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 dirección 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 dirección de avance) a su respectivon mundo de la dirección del espacio. Para ello, utilice el transform.TransformDirection función que toma una Vector3 como argumento. speed variable también está expuesta, por lo que podemos modificar en el editor. Finalmente, apagamos las colisiones entre el misil y el jugador. Sino lo hizo el misil podría chocar con el jugador cuando se crea una instancia. Mira esto en la API por debajo de IgnoreCollision. instantiatedProjectile.velocity = transform.TransformDirection( Vector3( 0, 0, speed ) ); Physics.IgnoreCollision( instantiatedProjectile. collider, transform.root.collider ); } } 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 ); } }
  • 10. By_Natrostus Página 10 Introduzca el código descrito en Javascript missilelauncher y guardarlo. Conecte el guión missilelauncher al Iniciador en el controlador deFPS. Usted puede confirmar que la secuencia de comandos missilelauncher ahora está unida al Launcher, mediante la selección de Lanzador de que en la vista de la Jerarquía y la comprobación 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 continuación, en la barra de menú principal, seleccione Componentes>Física>Rigidbody. Esto añade 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 guión. Asociar el misil con la variable de proyectil en el guión. En primer lugar, haga clic en Lanzador en el panel Jerarquía, observe el proyectil variable en elmissilelauncher guión de la sección en el panel Inspector. Ahora arrastra elprefabricado de Misiles de la el panel Proyecto y colóquelo en la variable de proyectiles. Ahora bien, si se ejecuta el juego que usted será capaz de disparar a una pequeña esfera que se verse afectada por la gravedad. explosiones de misiles Ahora vamos a agregar una explosión cuando el misil choca con otro objeto. Para ello es necesario conectar el comportamiento de los misiles, es decir, crear un nuevo guión y añadir al objeto de Misiles juego. Crear un script de nuevo en blanco mediante la selección deactivos> Crear>Javascript y cambio de nombre este nuevo script de proyectil. Arrastre el nuevo guión a la carpetaen la WeaponScripts el panel Proyecto. Entonces, ¿qué queremos que el proyectil que hacer? Queremos detectar cuando el misil ha tenido una colisión y crear una explosión en ese punto. Veamos el código: Cualquier código que ponemos dentro de la función se ejecuta cada vez OnCollisionEnter el objeto de que el script se encuentra en colisión con otro objeto. var explosion : GameObject; function OnCollisionEnter( collision : Collision ) { var contact : ContactPoint = collision.contacts[0];
  • 11. By_Natrostus Página 11 La principal tarea que queremos hacer dentro de la funciónOnCollisionEnter es crear una instancia una nueva explosión en el lugar en el espacio 3D donde el misilchocó. Así, ¿de dónde ocurra la colisión? El OnCollisionEnter función se pasauna colisión clase que contiene esta información. El punto en el que ocurrió la colisión es almacena en la variable ContactPoint. Aquí se utiliza la función de Instantiate para crear una explosión.Sabemos que crear una instancia toma 3 parámetros: (1) el objeto para crear una instancia, (2) la posición 3D, y (3) la rotación del objeto. Vamos a asignar esta a un objeto de juego con un sistema de partículas más tarde. También querrá ceder el presente con el editor, así que vamos a exponer a esta variable por lo que es público (se declara que fuera de cualquier función). El segundo parámetro, el punto de 3D en el que crear una instancia de la explosión fue determinó a partir de la clase de colisión en el punto 2. El tercer parámetro, la rotación para ajustar la explosión, necesita alguna explicación. Nosotros desea que la rotación de la explosión de modo que los yaxis de la explosión sigue a lo largo la superficie normal de la superficie del misil chocó con. Esto significa que para las paredes la explosión 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 explosión 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 rotación es decir "hacer el yaxis del punto de objeto en la misma dirección que el normal de la superficie con la que chocó '. Por último, queremos hacer que el misil desaparecer del juego, ya que ha chocado, que se realiza llamando al Destroy () con GameObject como un parámetro (GameObject denota el objeto está asociado con la secuencia de comandos). Aquí está el código completo para Projectile.js: Agregue el código Javascript en el proyectil y guardarlo. var rotation = Quaternion.FromToRotation( Vector3.up, contact.normal ); var instantiatedExplosion : GameObject = Instantiate( explosion, contact.point, rotation ); Destroy( gameObject ); } 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 ); }
  • 12. By_Natrostus Página 12 Conecte el Javascript proyectil a la prefabricada de misilesmediante la selección de componentes>Secuencias de comandos>Proyectil. Ahora tenemos que crear la explosión que queremos que ocurracada vez que choca con misiles. En primer lugar, crear una nueva prefabricada (llámese explosión)que almacenará el activo explosión. 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 configuración de la explosión hasta que estés satisfechocon su aspecto, a continuación, arrastre la explosión de la vista de la Jerarquía en el Prefabexplosión en el Proyecto del panel. Ahora podemos asignar a la explosión de los misiles: Asegurarse de que los misiles prefabricada se ha seleccionado, rellena la variable explosión arrastrando el objeto de explosión en el panel Proyecto a la variable de explosión del misil en el panel Inspector. Definir el comportamiento de explosión Ahora tenemos que crear un guión más que definir el comportamiento de la explosión 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 función común para las secuencias de comandos se denomina Inicio (). Código 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 explosión del juego después de una cierta cantidad de tiempo. A hacer esto usamos el Destroy () con un segundo parámetro que especifica cómo que esperar mucho tiempo antes de borrar. Veamos el código : La variable explosionTime se expone al editor de la Unidad para que pueda ser fácilmente ajustado. Introduzca el código anterior en la secuencia de comandos de explosión, eliminando la función Update () en el proceso. Conecte el guión de explosión a la explosión prefabricada, en primer lugar de hacer clic en la explosión prefabricadas y luego seleccionar los componentes> Secuencias de comandos> Explosión. Observe cómo hemos tratado de agrupar el comportamiento tan claramente como posible, el código que se refiere a la explosión se encuentra dentro de la secuencia de comandos que se adjunta a la casa prefabricada de explosión. var explosionTime = 1.0; function Start() { Destroy( gameObject, explosionTime ); }
  • 13. By_Natrostus Página 13 Ejecuta el juego y donde quiera que sus misiles choca con el medio ambiente, que debería ver el sistema de partículas explosión durante un período detiempo. efectos sonoros El mundo del juego ha sido un poco tranquilo hasta el momento,vamos a añadir un efecto de sonido de nuestra explosión efecto. En primer lugar vamos a asignar un clip de audio a la prefabricadaexplosión. Para permitir que el objeto de explosión al ser capaz de aceptar un clip de audio, se añade 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 explosión expuso variable. La unidad puede reproducir muchos formatos de audio diferentes. Ejecutar el juego de nuevo y nuestro efecto de sonido de explosióndeben ser escuchadas cuando cada uno misiles de impacto. Adición de GUI Ahora vamos a añadir una interfaz de usuario gráfica (GUI), más comúnmente conocida como las cabezas para arriba Display (HUD) para el juego. Nuestra sencilla interfaz gráfica de usuario sólo se va a incluir en una cruz. Añadir Punteria Cree un directorio llamado GUI Crear un nuevo guión, lo llaman punto de mira y arrastrarlo a la carpeta de interfaz gráfica de usuario. Escriba el siguiente código 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 ); }
  • 14. By_Natrostus Página 14 Primero creamos dos variables. La primera variable es dondevamos a poner la imagen que vamos a utilizar para nuestra textura. La segunda variable es elrectángulo que se almacenar en la posición de la textura en la pantalla. Dentro de la función start () se calcula que la textura se dibuja. En el interior de el constructor que tiene 4 parámetros que determinan el rectángulodonde se encuentra y lo grande que es. El primer parámetro que nos dice dónde está ellado izquierdo del rectángulo es. El segundo parámetro establece la parte inferior del rectángulo. Los parámetros tercero y cuarto determinar la anchura y altura del rectángulo. Dentro de OnGUI () se utiliza la funcionalidad de la clase de interfaz gráfica de usuario para dibujar elementos en la pantalla. En este caso llamamos DrawTexture () y pasar de la posición ycrosshairTexture. Este función entonces se basará nuestra forma de cruz en el centro de la pantalla. Guarda el script. Crear un nuevo objeto de juego vacío 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 gráfica 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 física Ahora queremos que los objetos de nuestro entorno a comportarse de forma más natural posible, esto es lograrse mediante la adición de la física. En esta sección vamos aagregar objetos con el medio ambiente que se trasladará al ser golpeado con nuestro misil. En primer lugarhay algunos términos nuevos explicar.
  • 15. By_Natrostus Página 15 Update Anteriormente, hemos entrado en código dentro de una función de actualización, de modo que podemos ejecutar que el código de cada cuadro. Un ejemplo fue el de detectar si el usuario había dado en el botón 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 física inestables. Por lo tanto, cada vez que desee actualizar los objetos en el juego que implicanla física (rigidbodies), código debe ser colocado dentro de una función FixedUpdate. El valor deltaTime en la unidad se utiliza para determinar el tiempo transcurrido entre la representación de dos años consecutivos marcos. Una distinción general entre actualización y funciones FixedUpdatees como sigue: · Update () el código dentro de la función por lo general las actualizaciones comportamiento de los jugadores, la lógica del juego, etc El valor de deltaTime no es coherente cuando se usa dentro de esta función. · FixedUpdate () el código dentro de esta función actualiza normalmente rigidbodies lo largo del tiempo (el comportamiento de la física). El deltaTime siempre devuelve el mismo valor cuando se le llama dentro de un FixedUpdate función. La Frecuencia Con La Que se llama FixedUpdate sí EspecíficaMEDIANTE el paso de Tiempo Fijo Propiedad en La Opción 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 recíproco 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 pequeño paso de tiempole dará la física más estables (mayor precisión), sin embargo, el rendimiento del juego se verá afectada. Asegúrese de que el juego se ejecuta de forma rápida y la física parecen realistas. El plazo final para explicar en esta sección es el rendimiento. Esto puede ser considerado como una declaración para detener la ejecución de la función 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 explosión, les dan una fuerza hacia arriba en dirección, haciendo que reaccione al misil. Veamos el código de la explosión Javascript actualización: 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 );
  • 16. By_Natrostus Página 16 En primer lugar, determinar si hay algún objeto con colisionadorescerca de donde el misil aterrizó. El Physics.OverlapSphere función de la clase () toma dos parámetros: un Posición 3D y radio y devuelve una matriz de los colisionadores que están contenidos dentro la esfera definida. Una vez que la matriz se ha obtenido, cada uno de los rigidbodiesunido a los colisionadores se puede dar una fuerza en una dirección determinada. A continuación se añade una fuerza (explosionPower) en la dirección hacia arriba (yaxis), en la ubicación 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 más cerca del borde de la circunferencia debería tener un efecto menor aplicado que los objetos en el epicentro de la explosión. Este efecto se toma en consideración por esta función. El explosionPower expuestos variables y pueden explosionRadius ser fácilmente ajustado para crear un efecto adecuado. Si un emisor de partículas se une a nuestra casa prefabricada de explosión a continuación, iniciar las partículas que emiten, esperar a 0,5 segundos (rendimiento), y luego dejar que emite. Aquí está el código completo para Explosion.js: //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; } }
  • 17. By_Natrostus Página 17 Actualización de la explosión de Javascript con el nuevo código 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. Además, trate de no disparar a los objetos directamente, pero cerca de ellos. Estodemostrará claramente cómo la explosión al alza se aplica una fuerza sobre un radio y no sólo a cada objetdirectamente. 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; } }
  • 18. By_Natrostus Página 18 G u a r d a t u e s c e n a Agradecimiento Original : Un agradecimiento especial a Ante Joachim (código) y EthanVosburgh (gráficos) por su ayuda en la elaboración de este tutorial. Agredecimientos Traductor English  Spanish : Un agradecimiento a Natrostus de (www.taringa.net) o Gamespub de (www.youtube.com) por traducir esta Guía oficial del Unity3D. Esta Guía es la misma que sale en la pagina oficial del unity3d la que te enseña los tutoriales. Solo cambia el idioma todo lo demás es idéntico. La traducción la hice frase por frase con el Google Traductor, así que puede que haya algunas que otras faltas de ortografía. Proximamente… Proximamente traduire la parte 2 del tutorial de fps de la pagina de unity 3d. Gracias. Espero Que Os Haya Servido. El siguiente tutorial de la serie te mostrará cómo construir sobre estas bases mediante la introducción de conceptos más avanzados, tales como Amnistía Internacional y múltiples armas.