martes, 22 de julio de 2014

#Script para pausar el juego en #unity3d - Pause a game

El siguiente Script es de uso frecuente en los juegos, puesto que con este podemos pausarlo y luego continuar jugando. En el script a continuación se indica como mostrar la textura al momento de la pausa.


En el Script se permite al usuario pausar el juego al presionar la tecla "P". Es necesario indicar que al momento de parar el tiempo, el player también dejará de moverse. Se puede reemplazar por cualquier tecla donde indica "KeyCode.(letra)" pero es necesario al momento de escribir la letra que esté en mayúscula. En el caso de no usar por medio de una letra, puede cambiar la sentencia por otra condición.

*JS
----------------------------------------------
function Update () {
    if (Input.GetKeyDown (KeyCode.P)) {
         Time.timeScale = 1.0-Time.timeScale;
         Time.fixedDeltaTime = 0.02 * Time.timeScale;
    }
}
----------------------------------------------
El timeScale se usa para efectos de movimiento lento. Cuando el timeScale es 1.0 el tiempo pasa más rápido que en el tiempo real. Cuando es 0.5 el tiempo pasa 2 veces más lento que el tiempo real. Si es de 0 el juego se detiene si todas sus funciones trabajan con velocidad de fotogramas independientes.

Si deseas aumentarle al código la opción de mostrar un mensaje al momento de la pausa, deberíamos de adicionar una variable de Boolean (verdadero y falso) y la función OnGUI para mostrar la textura o texto.

La variable textura es de tipo Texture2D para almacenar la textura a mostrar. Si observan en el siguiente script en la función update se aumentó una línea que valida si muestra es verdadero o falso. Dependiendo de ese valor de "muestra" se activará la función OnGUI, la cual crear un cuadro con los valores de (230,130,400,400) estos valores corresponden a (x, y, ancho y alto) y la "," seguida de la variable indica que se muestra la textura. Si se desea mostrar un texto en vez de una textura se debe de modificar el GUI.Label y al final poner el texto seguido de comillas.

*JS
----------------------------------------------
var textura : Texture2D;
var muestra : boolean;

function Update () {
    if (Input.GetKeyDown (KeyCode.P)) {
         Time.timeScale = 1.0-Time.timeScale;
         Time.fixedDeltaTime = 0.02 * Time.timeScale;
         muestra=!muestra;
    }
 
}

function OnGUI(){
if(muestra){
    GUI.Label(Rect(230,130,400,400), textura); // muestra textura
    GUI.Label(Rect(100, 100, 50, 30), "Pausa"); // muestra texto
    }
}
----------------------------------------------

1 comentario:

  1. Harrah's Philadelphia Casino & Racetrack Archives - Dr. MD
    Harrah's Philadelphia Casino & 영천 출장안마 Racetrack 군산 출장마사지 Archives Harrah's Philadelphia Casino & 제주 출장마사지 Racetrack. 청주 출장안마 The Philadelphia area has been 원주 출장마사지 welcoming to

    ResponderBorrar