109
www.3dboxweb.com
Audio: Agregamos audio al misil, para crear el efecto de que se dispara y se escucha, donde indicamos hasta que distancia el audio se Audio: dejara de escuchar, para crear el efecto de 3D. Ahora se creara el efecto de que cuando la bala se impacte y genere el efecto de explosión, haremos que el sistema de partículas se emita cuando colisione la bala, y se coloque en el polígono que colisiono (posición y cara normal). 1. 2. 3.
Cargamos el paquete “Scene “ Scene”” en la escena de nuestro personaje, para interactuar cuando dispare el personaje sobre cualquier parte de la escena. En la carpeta de Prefab, Prefab, seleccionamos “Small “ Small explosión”, explosión”, esta activamos “One “ One Shot” Shot” y “Autodesctruct “Autodesctruct”” Creamos un Script “AI_Missil_Explotion ” y se lo aplicaremos al prefab del Misil.
var ParticleExplotion : GameObject GameObject;; var explosionRadius = 5; var explosionPower = 2000.0 2000.0;; function OnCollisionEnter OnCollisionEnter(( vCollision vCollision:: Collision ) { //Destruir el misil para que solo solo después aparezcan las partículas con su audio. audio. Destroy(( gameObject ); Destroy //XYZ: "contactPoint" permite obtener obtener la posición "x,y,z" con lo que colisiona, (primer objeto objeto = 0). var impacto : ContactPoint = vCollision vCollision..contacts contacts[[0]; //ROTACIÓN: Saber sobre qué cara de la la normal colisiono (Vector3.Up = Cara de la Normal Normal Frontal). var rotation = Quaternion Quaternion..FromToRotation FromToRotation(( Vector3 Vector3..up up,, impacto.normal impacto. normal ); //POSICIÓN: crear instancia de la explosión, explosión, en la posición donde colisiono colisiono el misil. var InstantiateExplosion InstantiateExplosion : GameObject = Instantiate Instantiate(( ParticleExplotion, impacto. point point,, rotation ); //Al impactar el misil creara una esfera, y los los objetos que esten dentro de de su radio con collider se almacenaran almacenaran en un arreglo. var colliders : Collider Collider[] [] = Physics Physics..OverlapSphere OverlapSphere(( transform transform..position position,, explosionRadius );
}
//Descargamos cada uno de los "Objeto con collider" dentro de la variable "hit". for (var hit in colliders){ //Y Si el objeto colisionado colisionado tiene asignado "collider" "collider" y "Rigidbod". if (hit. if (hit.rigidbody rigidbody){ ){ //Le agregamos un impulso desde desde donde colisiono el Misicl hacia el objeto para hacerlo volar con una fuerza. hit.rigidbody hit.rigidbody..AddExplosionForce AddExplosionForce(explosionPower, (explosionPower, transform transform..position position,, explosionRadius); } }
110
www.3dboxweb.com
1.41 PAUSE GAMES GAMES & MOUSE HIDE
111
www.3dboxweb.com
Pause Game & Muse Hide: VERSION 1: CAMBIA DE VALOR E IMPRIME. VERSION 2: DETECTAR SI ESTA ACTIVO PAUSE.
private var GamePause : boolean = false;
private var GamePause : boolean = false;
Update() () { function Update function Update Update() () {
GetKeyDown( (KeyCode.Escape Escape) ) && ! if(Input.GetKeyDown && !GamePause){ //Detener Juego Time.timeScale = 0;
if(Input.GetKeyDown GetKeyDown( (KeyCode.Escape Escape)){ )){
//Switchar la variable On/Off GamePause = !GamePause;
//El sonido se pause AudioListener .pause = true;
//Información del estado
//Informacion del estado print ("Juego Detenido");
print (GamePause);
//Switchar la variable On/Off GamePause = !GamePause;
}
} else if (Input.GetKeyDown GetKeyDown( (KeyCode.Escape Escape) ) && GamePause){
GetKeyDown( (KeyCode.Escape Escape) ) ){ else if (Input.GetKeyDown
//Detener Juego Time.timeScale = 1;
//Switchar la variable On/Off GamePause = !GamePause;
//El sonido Continue AudioListener .pause = false;
//Información del estado
//Informacion del estado print ("Juego Continuado");
print (GamePause); }
//Switchar la variable On/Off GamePause = !GamePause; }
} }
112
www.3dboxweb.com
1.42 Xbox GamePad Controller.
113
www.3dboxweb.com
TRIGGERS
STICK IZQ
STICK Der D-PAD
114
www.3dboxweb.com
GamePad Controller: Se puede usar GamePad de Xbox para poder controlar las acciones de nuestro juego re mapeando los botones del control y sustituirlos por el uso del teclado y mouse, generando juegos con orientación a consolas o PC NextGen. Edit>Project Settings>Inputs.
BOTONES: (La sensibilidad deberá estar a 1000).
A = joystick 1 button 0 B = joystick 1 button 1 X = joystick 1 button button 2 Y = joystick 1 button button 3 [LB] = joystick 1 button 4 [RB] = joystick 1 button 5 Back = joystick 1 button 6 Start = joystick 1 button 7 Stick Izq Stick Der
AXIS (Sensibilidad deberá de estar en 1 y digital 1000). Stick Izq Stick Izq
X Axis (Horizontal) = X Axis Y Axis (Vertical) = Y Axis
Stick Der Stick Der
4th Axis (Vertical) = 4th axis (Joystick) 5th Axis (Horizontal) = 5th axis (Joystick)
Triggers = 3rd Axis (joystick & Scrollwheel). D-Pad (Horizontal) = 6th Axis (Joystick) D-Pad (Vertical) = 7th Axis (Joystick)
Botón = joystick 1 button 8 Botón = joystick 1 button button 9
Nota: Nota: Estos son los valores de “Type y Aixs” para esta categoría.
Nota: Nota: Los triggers (3rd Axis), aunque son análogos, Unity los detecta en forma Digital Digital (-1 a 0 a 1).
115
www.3dboxweb.com
1.43 BUILDING GAME
116
www.3dboxweb.com
Building Settings:
117
www.3dboxweb.com
1.44 STREAMING CONTENT
118
www.3dboxweb.com
Streaming Content: Podemos cargar contenido externo desde Internet cuando compilamos nuestro juego para web, de esta manera podemos descargar niveles o contenido extra a nuestros juegos siempre y cuando este compilado en ".unity3D", estos es el formato que podemos cargar de manera de streaming y ver desde la escena cuanto y como lo va descargándolo. 1. Cargamos el paquete " Streaming_Start " que contiene 2 Escenas, donde nivel1 solo tiene una barra. 2. Lo que haremos es cargar el " nivel2" ya compilado desde el Nivel1, que compilaremos como web, para esto creamos un nuevo Script "AI_GUI_Barra " AI_GUI_Barra " y se lo asignamos a: " GUI_Barra_Texture "
AI_GUI_Barra
//Variable para controlar la GUI_% var Porcentaje : GUIText GUIText; ; function Start () { // Crear un nuevo objeto para cargar contenido en streaming. streaming. "Nivel2.unity3d"); ); var WebLoader = new WWW ("Nivel2.unity3d" //Mandar cargar el Archivo de web. WebLoader.LoadUnityWeb WebLoader.LoadUnityWeb(); (); //variable para ahorrar script var Barra = guiTexture guiTexture. .pixelInset pixelInset; ; //Mientras no este cargado el archivo se ejecutaran las funciones while (! WebLoader.isDone WebLoader.isDone) ) { // hacer que el GUI de texto muestre el porcentaje de lo descargado en enteros. Porcentaje.text Porcentaje.text = Mathf.Round (WebLoader.progress (WebLoader.progress* *100 100) ) .ToString .ToString() () + "%" "%"; ; // hacer que el GUI crezca en ancho de acuerdo a lo cargado, iniciando el valor guiTexture .pixelInset pixelInset. .xMax = Barra.xMin Barra.xMin + WebLoader.progress WebLoader.progress * Barra.width Barra.width; ; // hacer que espere hasta que cargue el porcentaje yield;
} }
114
www.3dboxweb.com
GamePad Controller: Se puede usar GamePad de Xbox para poder controlar las acciones de nuestro juego re mapeando los botones del control y sustituirlos por el uso del teclado y mouse, generando juegos con orientación a consolas o PC NextGen. Edit>Project Settings>Inputs.
BOTONES: (La sensibilidad deberá estar a 1000).
A = joystick 1 button 0 B = joystick 1 button 1 X = joystick 1 button button 2 Y = joystick 1 button button 3 [LB] = joystick 1 button 4 [RB] = joystick 1 button 5 Back = joystick 1 button 6 Start = joystick 1 button 7 Stick Izq Stick Der
AXIS (Sensibilidad deberá de estar en 1 y digital 1000). Stick Izq Stick Izq
X Axis (Horizontal) = X Axis Y Axis (Vertical) = Y Axis
Stick Der Stick Der
4th Axis (Vertical) = 4th axis (Joystick) 5th Axis (Horizontal) = 5th axis (Joystick)
Triggers = 3rd Axis (joystick & Scrollwheel). D-Pad (Horizontal) = 6th Axis (Joystick) D-Pad (Vertical) = 7th Axis (Joystick)
Botón = joystick 1 button 8 Botón = joystick 1 button button 9
Nota: Nota: Estos son los valores de “Type y Aixs” para esta categoría.
Nota: Nota: Los triggers (3rd Axis), aunque son análogos, Unity los detecta en forma Digital Digital (-1 a 0 a 1).
115
www.3dboxweb.com
1.43 BUILDING GAME
116
www.3dboxweb.com
Building Settings: