jueves, 30 de junio de 2011

Scripts Unity

En internet existe mucho código disperso, pero realmente son fragmentos de código que debemos estudiar y algunos son soluciones complicadas a problemas simples, una buena fuente en mi caso ha sido la Wiki de Unity. Pero hoy soy yo quien ha decidido poner en sus manos diversos scripts para que los usen en sus juegos y aprendan un poco de mi experiencia programando juegos.

Tiempo (JavaScript)


private var minutos=0;
private var min="00";
var updateInterval = 0.5;

private var accum = 0.0; // FPS acumulados desde el ultimo intervalo
//private var frames = 0.0; // Frames dibujados en el intervalo
private var timeleft : float; // el tiempo que falta para que se termine el intervalo actual


function Start()
{
if( !guiText )
{
print ("No existe la interfaz tiempo"); //Debemos tener una GUI Text para mostrar el mensaje
enabled = false;
return;
}
timeleft = updateInterval;
}

function Update()
{
//variables para establecer los minutos y segundos

currentTime = Time.deltaTime;
// mostrar dos digitos decimales (f2 format)

accum+=currentTime;

if(accum>59){
accum=0;
minutos++;
}

min="0"+minutos.ToString();

if(accum<10) guiText.text = min+ ":0"+(accum).ToString("f2");
else guiText.text = min+ ":"+(accum).ToString("f2");

}

@script RequireComponent (GUIText)

-----------------------------------------------------------------------------------------------------------------------------------

Rotacion continua de un objeto (Java Script)


public var velocidadRotacion = 45;//Es posible modificar la velocidad de rotacion de cada objeto

function Update ()
{
transform.Rotate (0, velocidadRotacion * Time.deltaTime, 0); //Aca eleji como eje de rotacion el eje y
/*
transform.Rotate (velocidadRotacion * Time.deltaTime, 0, 0); Aca eleji como eje de rotacion el eje x
transform.Rotate (0, 0, velocidadRotacion * Time.deltaTime); Aca eleji como eje de rotacion el eje z
*/
}
//Estas dos funciones son para optimizar el juego, la animacion solo se reproduce si el objeto es visible
function OnBecameVisible()
{
enabled = true;
}

function OnBecameInvisible()
{
enabled = false;
}

-----------------------------------------------------------------------------------------------------------------------------------

Mirar a la camara (JavaScript)


function Update()
{
transform.LookAt(Camera.main.transform);//Esta es la parte importante
}
//Estas son funciones de optimizacion
function OnBecameVisible()
{
enabled = true;
}

function OnBecameInvisible()
{
enabled = false;
}

-----------------------------------------------------------------------------------------------------------------------------------

Animacion de Textura (JavaScript), útil para crear efecto de olas, cercas eléctricas, lasers, o un cielo en 2 que se mueve.


public var scrollSpeedX = 0.25;//Posicion en x
public var scrollSpeedY = 0.25;//Posicion en y

function FixedUpdate()
{
//Mover la textura la distancia que asignamos cada unidad de tiempo
    var offsetX = Time.time * scrollSpeedX;
    var offsetY = Time.time * scrollSpeedY;
    renderer.material.mainTextureOffset = Vector2(offsetX,offsetY);//Animar la textura
}

-----------------------------------------------------------------------------------------------------------------------------------

Mover con el mouse (JavaScript), muy util para puzzles y para juegos de Iphone o Ipad con el que se podra mover el objeto al tocar la pantalla.


// Mueve el objeto con click izquierdo

var smooth:int; // Determina la velocidad de movimiento

private var targetPosition:Vector3;

function Update () {
    if(Input.GetKeyDown(KeyCode.Mouse0)) //Inicia si se oprime el boton izquierdo del mouse
    {
        var playerPlane = new Plane(Vector3.up, transform.position); //Crea un plano donde se movera el objeto
        var ray = Camera.main.ScreenPointToRay (Input.mousePosition); //Crea un rayo desde la camara actual hacia el objeto
        var hitdist = 0.0;
       
        if (playerPlane.Raycast (ray, hitdist)) {
            var targetPoint = ray.GetPoint(hitdist);
            targetPosition = ray.GetPoint(hitdist);
            var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
            transform.rotation = targetRotation;
        }
    }
   
    transform.position = Vector3.Lerp (transform.position, targetPosition, Time.deltaTime * smooth);
}

3 comentarios:

  1. grasias me a sido muy muy util

    ResponderEliminar
  2. Gracias tio con el de mirar a camara me as salvado la vida

    ResponderEliminar
  3. mira y no tendras scripts de vuelos o algo asi es que no consigo como hacer volar a mi jugador

    ResponderEliminar