Tutorial_Unity3d_1_Español

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/