Upload
juan-diego-carmona-barrero
View
217
Download
0
Embed Size (px)
Citation preview
8/13/2019 Tutorial_Unity3d_1_Espaol
1/18
By_Natrostus Pgina 1
Traducido Por El Traducctor De Google, Puede Haber Alguna Falta. Disfrutenlo
8/13/2019 Tutorial_Unity3d_1_Espaol
2/18
By_Natrostus Pgina 2
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 usuarioFsica
Agradecimientos
8/13/2019 Tutorial_Unity3d_1_Espaol
3/18
By_Natrostus Pgina 3
Parte 1 : Introduccin
En este tutorial se detallar la
forma enpara hacer una sencilla PrimeraPerson Shooter (FPS). No seintroducir 3D fundamentalprogramacin de juegoslos conceptos y dar consejossobrecmo pensar como un juegoprogramador.
Requisitos previosEste tutorial se supone que est familiarizado con la interfaz de la Unidad y
la programacin bsica conceptos.
Inicio de un nuevo proyecto
descargarFPS_Tutorial.zip,
descomprima y abra ella carpeta del proyecto en
Unity.
Importacin de laNorma
Los activos delpaquete Unidadde su paquetes estndarcarpeta en la Unidadest instalado.
8/13/2019 Tutorial_Unity3d_1_Espaol
4/18
By_Natrostus Pgina 4
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 juegoUna 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.
8/13/2019 Tutorial_Unity3d_1_Espaol
5/18
By_Natrostus Pgina 5
Agregar el personaje principalAhora 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 ladode los activos en el estndar
el panel Proyecto, como una lista de activos aparecer. Buscar la carpetallamada prefabricadas ohaga clic en la flecha en el lado izquierdo. Ahora debera ver la primera personacontrol de activos. Arrastre esto a la vista de la escena.
usted debe ver un objeto que representa el jugador del cilindro, 3flechasgrandes 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.
8/13/2019 Tutorial_Unity3d_1_Espaol
6/18
By_Natrostus Pgina 6
Adicin de un armaAhora 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 armasEn 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 elijaGame Object >Move to view desde el men principal. Observe cmo el lanzadorobjeto se encuentra ahora cerca del controlador de FPS. Ahora podemos
utilizar los mangos de situar el lanzador aproximadamente donde las manos debenestar.
NOTA Puede que el personaje hacia la izquierda o diestrosmediante la alteracin de la ubicacin de este objeto, sin necesidad de cambiar ningncdigo.
8/13/2019 Tutorial_Unity3d_1_Espaol
7/18
By_Natrostus Pgina 7
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, moverel personaje alrededor. Usted cuenta de que nuestro objeto de lanzamiento no semueve con nuestro personaje (se puede pulsar Play para detener el juego terrestrede ahora). Para resolver este problema, arrastre el Lanzador.
Para resolver este problema, arrastre el objeto lanzador the Main Camera objectque 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 laescena, el Lanzador de ahora debe moverse con nuestro carcter. Hemos asociado laLanzador de objeto en el juego con un objeto que se mueve en los 3 ejes (la cmara).
Crear el objeto de MisilesVamos a crear el misil que se pondr en marcha cuando el usuario hace clic enel botn de disparo.
Por ahora vamos a utilizar algo sencillo, una esfera. Crear unobjetoprefabricado 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 Misilesprefabricada 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 paracrear una instancia en tiempo de ejecucin debera en general, es una casaprefabricada.
Escriba el cdigo de Lanzador de MisilesEl controlador de FPS es una casa prefabricada que consta devarios objetos deljuego y sus componentes. La Controlador de FPS es en smisma una malla cilndrica que slogira alrededor del yaxis, por lo que siadjuntar el cdigo de inicio (script) para esto, entonces no seremoscapaces dedisparar hacia arriba y hacia abajo. Por lo tanto, vamos a colocar nuestro cdigode 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 dellanzador.
Seleccione Activos>Crear>JavaScript, lo que crea un documento en blanco conJavascript. Un nuevo activo aparece en el panel de
proyectos tituladoNewBehaviourScript. Cambiar el nombre de este scriptpara missilelauncher.
CONSEJOPuede especificar qu editor de cdigo externo que desee utilizar launidad, haga clic ende la Unidad>Preferencias y luego seleccionando la casilla
de Script Editorexterno.
8/13/2019 Tutorial_Unity3d_1_Espaol
8/18
By_Natrostus Pgina 8
Crear un nuevo directorio dentro de la vista del proyectodenominado WeaponScripts, vamos a poner todas nuestras armas las
secuencias de comandos aqu. Mueve el Javascript en missile launcher aqu, y moverel prefabricado de Misiles tambin.
Vamos a echar un vistazo a la completa Javascript paramissilelauncher. Puedeescribir en el secciones de cdigo a medida que siguen.
Pensar desde un nivel alto, qu es lo que queremos acer? Bueno, queremos detectarcuando el usuario ha dado en el botn de disparo, y luego una instancia de un nuevomisil y lanzarlo con una cierta velocidad hacia el lugar donde el usuarioestaba buscando. Vamos a examinar el cdigo en detalle:
Este es el comienzo de la escritura, que define las propiedades y declara una funcinllama Update.
Primero quiere comprobar si el usuario pulsa el botn de disparo."Feu 1" se asignaa dos el botn izquierdo del ratn y la configuracin del teclado actual (esto puedeser editado desde el Editor de men Ver> Ajustes del proyecto>De entrada).
Declaramos una variable para contener una referencia a lainstancia de objeto. El tipode este variable es Rigidbody, esto es debido a que el misil debe tener uncomportamiento fsica.
Para crear instancias de un objeto en la unidad que utiliza la funcin de crear unainstancia mediante tres parmetros, el objeto de crear una instancia, la posicin en3D 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 unproyectil de todos modos? El proyectil se establece que dentro del editor. Para permitirque esto suceda, se declara el proyectilvariable fuera de cualquier funcin, lo cual lohace pblico y expone al editor de la Unidad. El objeto del proyectil pudo haber sidocreado en el cdigo, sin embargo Si desea modificar (modificar) una variable, esmejor hacerlo desde dentro de la Unidad editor.
El segundo parmetro, transform.position, crea el proyectil en la misma posicinen el espacio 3D como el lanzador. Por qu el lanzador? Bueno, el guin queestamos creando ser unido a la lanzadera por lo que si queremos obtener nuestraposicin actual en 3D, transform.positionda que para nosotros (la palabra clave detransformacin accede a la transformacin 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 );
8/13/2019 Tutorial_Unity3d_1_Espaol
9/18
By_Natrostus Pgina 9
guin). El tercer parmetro, transform.rotation, es similar al segundo parmetro,excepto que crea el misil con las propiedades de rotacin mismas del lanzador:
La siguiente parte del cdigo que hace que nuestro movimiento de misiles. Paraello, le damos al misil velocidad, pero en el que la direccin (x, y, o z)? En la vista de laescena, haga clic en el controlador de FPS,las flechas demovimiento aparecen ("W" de prensa si las flechas no aparecen), uno es de colorrojo, 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 seenfrenta, queremos dar a nuestros misiles a una velocidad en la ZAXIS.
La velocidad es una propiedad de instantiatedProjectile. Cmo sabemos
esto? Bueno, instantiatedProjectilees de Rigidbodytipo, y si nos fijamos en la API,vemos que la velocidad es una propiedad. Echa un vistazo a algunas de las otraspropiedades que Rigidbodytiene, tambin. Para establecer la velocidad quenecesitamos para especificar la velocidad en cada eje. Sin embargo, existe una ligeratema. Los objetos en 3D se especifican mediante dos modelos decoordenadas, locales y del mundo. En locales el espacio, las coordenadas sonrelativas al objeto que se est trabajando. En el espacio del mundo,coordenadas son absolutos: hasta, por ejemplo, es siempre la misma direccin paratodos los objetos. Rigidbody.velocityse debe especificar en el espacio universal. Porlo tanto, cuando se asigna la velocidad usted necesita para convertir de la ZAXISen el espacio local (la direccin de avance) a su respectivon mundo de la direccin del
espacio. Para ello, utilice el t ransform.TransformDirect ionfuncin que
toma una Vector3 como argumento. speedvariable tambin est expuesta, por lo quepodemos modificar en el editor.
Finalmente, apagamos las colisiones entre el misil y el jugador. Sino lo hizoel misil podra chocar con el jugador cuando se crea una instancia. Mira esto en laAPI 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 );}}
8/13/2019 Tutorial_Unity3d_1_Espaol
10/18
By_Natrostus Pgina 10
Introduzca el cdigo descrito en Javascript missilelauncher y guardarlo.
Conecte el guin missilelauncher al Iniciador en el controlador deFPS. Ustedpuede confirmar que la secuencia de comandos missilelauncher ahora est
unida al Launcher, mediante la seleccin de Lanzador de que en la vista de laJerarqua y la comprobacin deque el missilelauncher secuencia de comandos semuestra en el panel Inspector.
El misil prefabricada que creado previamente no se ha asociadocon el proyectilvariable en el script, por lo que debe hacer esto dentro del editor. La
variable de proyectiles Tipo Rigidbody, as que primero debemos asegurarnosde que nuestro misil tiene un adjunto Rigidbody.
Haga clic en el misil en el panel Proyecto, a continuacin, en la barra de menprincipal, seleccione Componentes>Fsica>Rigidbody. Esto
aade un componente Rigidbody al misiles que quiera disparar. Tenemos quehacer 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, hagaclic en
Lanzador en el panel Jerarqua, observe el proyectil variable en elmissilelauncherguin de la seccin en el panel Inspector. Ahora arrastra elprefabricado de Misiles dela el panel Proyecto y colquelo en la variable de proyectiles.
Ahora bien, si se ejecuta el juego que usted ser capaz de disparar a unapequea esfera que se verse afectada por la gravedad.
explosiones de misilesAhora 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 unnuevo 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 panelProyecto.
Entonces, qu queremos que el proyectil que hacer? Queremos detectar cuando elmisil ha tenido una colisin y crear una explosin en ese punto. Veamos el cdigo:
Cualquier cdigo que ponemos dentro de la funcin se ejecuta cadavez OnCollisionEnterel objeto de que el script se encuentra en colisin con otroobjeto.
var explosion : GameObject;function OnCollisionEnter( collision : Collision ){
var contact : ContactPoint = collision.contacts[0];
8/13/2019 Tutorial_Unity3d_1_Espaol
11/18
By_Natrostus Pgina 11
La principal tarea que queremos hacer dentro de la funcinOnCollisionEnter es crearuna instancia una nueva explosin en el lugar en el espacio 3D donde elmisilchoc. As, de dnde ocurra la colisin? El OnCollisionEnter funcin sepasauna colisin clase que contiene esta informacin. El punto en el que ocurri lacolisin es almacena en la variable ContactPoint.
Aqu se utiliza la funcin de Instantiate para crear una explosin.Sabemos que crearuna instancia toma 3 parmetros: (1) el objeto para crear una instancia, (2) laposicin 3D, y (3) la rotacin del objeto.
Vamos a asignar esta a un objeto de juego con un sistema de partculas mstarde. 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 fuedetermin a partir de la clase de colisin en el punto 2.
El tercer parmetro, la rotacin para ajustar la explosin, necesita algunaexplicacin. Nosotros desea que la rotacin de la explosin de modo que los yaxis dela explosin sigue a lo largo la superficie normal de la superficie del misil choccon. Esto significa que para las paredes la explosin debe mirar hacia fuera, para lospisos que seencuentran dirigidas hacia arriba. As que lo que queremos que haceres traducir el yaxis de la explosin en el espacio local (la yaxis es hacia arriba), parala 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 mismadireccin 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 parmetro(GameObjectdenota el objeto est asociado con la secuencia de comandos).Aqu est el cdigo completo para Projectile.js:
Agregue el cdigo 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 );}
8/13/2019 Tutorial_Unity3d_1_Espaol
12/18
By_Natrostus Pgina 12
Conecte el Javascript proyectil a la prefabricada de misilesmediante laseleccin de componentes>Secuencias de comandos>Proyectil.
Ahora tenemos que crear la explosin que queremos que ocurracada vezque choca con misiles.
En primer lugar, crear una nueva prefabricada (llmese explosin)quealmacenar el activo explosin.
The standard assets contain a nice explosion prefab with a particle system and alight 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 suaspecto, a continuacin, arrastre la explosin de la vista de la Jerarqua en
el Prefabexplosin en el Proyecto del panel. Ahora podemos asignar a laexplosin de los misiles:
Asegurarse de que los misiles prefabricada se ha seleccionado, rellena lavariable explosin arrastrando el objeto de explosin en el panel Proyecto a lavariable de explosin del misil en el panel Inspector.
Definir el comportamiento de explosinAhora tenemos que crear un guin ms que definir el comportamiento de la explosinmisma.
Create a new script, call it Explosion, and put it in the Weapons folder. Doubleclick 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 quepertenece se crea una instancia. Todo lo que quiero hacer por ahora es eliminar laexplosin del juego despus de una cierta cantidad de tiempo. A hacer esto usamosel Destroy ()con un segundo parmetro que especifica cmo que esperar muchotiempo antes de borrar. Veamos el cdigo :
La variable explosionTimese expone al editor de la Unidad para que puedaser fcilmente ajustado.
Introduzca el cdigo anterior en la secuencia de comandos deexplosin, eliminando la funcin Update ()en el proceso.
Conecte el guin de explosin a la explosin prefabricada, en primer lugar dehacer 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 decomandos que se adjunta a la casa prefabricada de explosin.
var explosionTime = 1.0;function Start(){
Destroy( gameObject, explosionTime );}
8/13/2019 Tutorial_Unity3d_1_Espaol
13/18
By_Natrostus Pgina 13
Ejecuta el juego y donde quiera que sus misiles choca con el medioambiente, que debera ver el sistema de partculas explosin durante un perodo
detiempo.
efectos sonorosEl mundo del juego ha sido un poco tranquilo hasta el momento,vamos a aadir unefecto 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 deaudio, se aade el
Componente de fuente de audio a la misma desde el men principal (Compon ent >
Audio> Audio Source).Se dar cuenta de una de las propiedades de estecomponente es el Audio Clip.
Asignar "RocketLauncherImpact"muestra de audio clipde la casaprefabricada explosin expuso variable. La unidad puede reproducir muchosformatos de audio diferentes.
Ejecutar el juego de nuevo y nuestro efecto de sonido de explosindeben serescuchadas cuando cada uno misiles de impacto.
Adicin de GUIAhora vamos a aadir una interfaz de usuario grfica (GUI), ms comnmenteconocida como las cabezas para arribaDisplay (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 carpetade 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 );}
8/13/2019 Tutorial_Unity3d_1_Espaol
14/18
By_Natrostus Pgina 14
Primero creamos dos variables. La primera variable es dondevamos a poner la imagenque vamos a utilizar para nuestra textura. La segunda variable es elrectngulo que sealmacenar en la posicin de la textura en la pantalla.
Dentro de la funcin start () se calcula que la textura se dibuja. En el interior deel constructor que tiene 4 parmetros que determinan el rectngulodonde se encuentray lo grande que es. El primer parmetro que nos dice dnde est ellado izquierdo delrectngulo es. El segundo parmetro establece la parte inferior del rectngulo. Losparmetros tercero y cuarto determinar la anchura y altura del rectngulo.
Dentro de OnGUI () se utiliza la funcionalidad de la clase de interfaz grfica deusuario para dibujar elementos en la pantalla. En este caso llamamos DrawTexture () ypasar de la posicin ycrosshairTexture. Este funcin entonces se basar nuestra formade 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 deobjetos GUI.
Seleccione el objeto de interfaz grfica de usuario del juego y luego arrastrar latextura 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
fsicaAhora queremos que los objetos de nuestro entorno a comportarse de forma msnatural posible, esto es lograrse mediante la adicin de la fsica. En estaseccin vamos aagregar objetos con el medio ambiente que se trasladar al sergolpeado con nuestro misil. En primer lugarhay algunos trminos nuevos explicar.
8/13/2019 Tutorial_Unity3d_1_Espaol
15/18
By_Natrostus Pgina 15
UpdateAnteriormente, hemos entrado en cdigo dentro de una funcin de actualizacin, demodo que podemos ejecutar que el cdigo de cada cuadro. Un ejemplo fue el dedetectar si el usuario haba dado en el botn de disparo. Sin embargo, la tasade 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 lotanto, cada vez que desee actualizar los objetos en el juego que implicanlafsica (rigidbodies), cdigo debe ser colocado dentro de una funcin FixedUpdate. Elvalor deltaTime en la unidad se utiliza para determinar el tiempo transcurrido entrela 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 lasactualizaciones comportamiento de los jugadores, la lgica del juego, etc El valorde deltaTimeno es coherente cuando se usa dentro de esta funcin.
FixedUpdate () el cdigo dentro de esta funcin actualiza normalmente rigidbodies lolargo del tiempo (el comportamiento de la fsica). El deltaTimesiempre devuelve elmismo valor cuando se le llama dentro de un FixedUpdate funcin.
La Frecuencia Con La Que se llama FixedUpdate s EspecficaMEDIANTE el paso deTiempo Fijo Propiedad en La Opcin Editar del men Ver>Ajustes del Proyecto> El Tiempo y You can also servicios Alterado. Este propiedadcontiene el tiempo en segundos para obtener losfotogramas por segundo valor y tomarla recproco de este valor.
SUGERENCIAAl modificar el valor de paso de tiempo fijo (lo que significa fotogramas
por segundo), tener cuidado para lograr un equilibrio, un pequeo paso de tiempoledar la fsica ms estables (mayor precisin), sin embargo, el rendimiento del juego sever afectada. Asegrese de que el juego se ejecuta de forma rpida y lafsica parecen realistas.
El plazo final para explicar en esta seccin es el rendimiento. Esto puede serconsiderado 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 haciaarriba 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 playingDestroy( gameObject, explosionTime );//Find all nearby collidersvar colliders : Collider[] = Physics.OverlapSphere( transform.position,explosionRadius );
8/13/2019 Tutorial_Unity3d_1_Espaol
16/18
By_Natrostus Pgina 16
En primer lugar, determinar si hay algn objeto con colisionadorescerca de donde elmisil aterriz. El Physics.OverlapSphere funcin de la clase () toma dosparmetros: un Posicin 3D y radio y devuelve una matriz de los colisionadores queestn contenidos dentro la esfera definida.
Una vez que la matriz se ha obtenido, cada uno de los rigidbodiesunidoa los colisionadores se puede dar una fuerza en una direccin determinada.
A continuacin se aade una fuerza (explosionPower) en la direccin haciaarriba (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 constantedurante todo el radio. Rigidbodies ms cerca del borde de la circunferencia deberatener un efecto menor aplicado que los objetos en el epicentro de la explosin. Esteefecto se toma en consideracin por estafuncin. El explosionPowerexpuestos variables y pueden explosionRadiusserfcilmente ajustado para crear un efecto adecuado.
Si un emisor de partculas se une a nuestra casa prefabricada de explosin acontinuacin, iniciar las partculas que emiten, esperar a 0,5 segundos (rendimiento), yluego dejar que emite.
Aqu est el cdigo 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 secondsif( particleEmitter ){
particleEmitter.emit = true;yield WaitForSeconds( 0.5 );particleEmitter.emit = false;}}
8/13/2019 Tutorial_Unity3d_1_Espaol
17/18
By_Natrostus Pgina 17
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 adjuntaruna rigidbody. Duplica el cubo varias veces y se dispersan a su alrededor.
Prueba el juego de nuevo y tirar los objetos que han rigidbodiesunidos. ellosAhora 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 acada 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 collidersvar 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 secondsif( particleEmitter )
{particleEmitter.emit = true;yield WaitForSeconds( 0.5 );particleEmitter.emit = false;
}
}
8/13/2019 Tutorial_Unity3d_1_Espaol
18/18
By_Natrostus Pgina 18
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) porsu ayuda en la elaboracin de este tutorial.
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 lostutoriales. Solo cambia el idioma todo lo dems es idntico.
La traduccin la hice frase por frase con el Google Traductor, as que puede que hayaalgunas 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.
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
http://www.taringa.net/http://www.taringa.net/http://www.taringa.net/http://www.taringa.net/