domingo, 26 de abril de 2015

Resumen de scripts

LA CÁMARA APUNTA A UN OBJETO


function Start () {

}
var objeto : Transform;
function Update () {
transform.LookAt(objeto);

}

LA CÁMARA SIGUE A UN OBJETO


var bolaTransform;
function Start()
{
//bola = GameObject.FindGameObjectsWithTag("Player");
}


function Update ()
{
    if (transform.position.x < bola.position.x )
    {
    transform.position.x = bola.position.x-3;
    }
    else
    {
    transform.position.x = bola.position.x+3;
    }
    
    transform.position.y = bola.position.y+1;
    transform.position.z = bola.position.z;
    transform.LookAt(bola);
}

  

Mover un objeto

Ejemplo 1 a


function Update () {
transform.Translate(10,0,0);

}

Ejemplo 2

var velocidad:float;
function Update () {
transform.Translate(velocidad*Time.deltaTime,0,0);

}

Ejemplo 3

function Update () {
transform.Translate(1*Time.deltaTime,0,0);

}


  

Rotar un objeto


Ejemplo1


function Update () {
transform.Rotate(1,6,4);
}

Ejemplo 2


function Update () {
transform.Rotate(0,0,10);
}


ROTAR UN OBJETO HASTA UN ÁNGULO ABSOLUTO

if (movimiento == 1)
   transform.eulerAngles = Vector3(4002611);


ROTAR UN OBJETO HASTA UN ÁNGULO ABSOLUTO PROGRESIVAMENTE
var aAngulo = Vector3(0,0,0);
function Start () {

}

function Update () {


if (Input.GetKey("j"))
   movimiento = 1;
if (movimiento == 1)
   { 
   
   if (Vector3.Distance(transform.eulerAngles,aAngulo) > 0.01)
      transform.eulerAngles = Vector3.Lerp(transform.rotation.eulerAngles,aAngulo,Time.deltaTime); 
    
   }
    // Time.deltaTime se podría sustituir por un valor que indique el tiempo, podría ser 0.1 para décimas de segundo.  
   else
   {
      transform.eulerAngles = aAngulo;
      movimiento = 0
      
   }   
   
}


CONTROL DE LOS CURSORES


if (Input.GetKey("down") )
   transform.Translate(0,-1,0);
  
  
   if (Input.GetKey("up") )
   transform.Translate(0,1,0);
  
   if (Input.GetKey("right"))
   transform.Translate(1,0,0);
  
   if (Input.GetKey("left"))
   transform.Translate(-1,0,0);

 

CONTROL DE TECLAS


if (Input.GetKey("z") )
   transform.Translate(0,-1,0);
  
  
   if (Input.GetKey("w") )
   transform.Translate(0,1,0);
  
   if (Input.GetKey("a"))
   transform.Translate(1,0,0);
  
   if (Input.GetKey("s"))
   transform.Translate(-1,0,0);

 

CONTROL DEL RATÓN



if (Input.GetMouseButton(0))
   transform.Translate(10,0,0);


Returns whether the given mouse button is held down.

button values are 0 for left button, 1 for right button, 2 for the middle button.

JavaScript
// Detects clicks from the mouse and prints a message
// depending on the click detected.

function Update() {
    if(Input.GetMouseButton(0))
        Debug.Log("Pressed left click.");
    if(Input.GetMouseButton(1))
        Debug.Log("Pressed right click.");
    if(Input.GetMouseButton(2))
        Debug.Log("Pressed middle click.");
}

 Control de cursores



Ejemplo 1


function Update () {
var traslacion:float;
traslacion =Input.GetAxis("Vertical");
var rotacion:float;
rotacion= Input.GetAxis("Horizontal");
transform.Translate(0,0,traslacion);
transform.Rotate(0,rotacion,0);

}

Ejemplo 2


function Update () {
var traslacion:float = Input.GetAxis("Vertical");
var rotacion:float = Input.GetAxis("Horizontal");
transform.Translate(0,0,traslacion);
transform.Rotate(0,rotacion,0);

}

 Ejemplo 3


function Update () {

function Update () {
var traslacion:float;
traslacion =Input.GetAxis("Vertical");
var rotacion:float;
traslacion *=Time.deltaTime;
rotacion *=Time.deltaTime;
rotacion= Input.GetAxis("Horizontal");
transform.Translate(0,0,traslacion);
transform.Rotate(0,rotacion,0);

}
}

Ejemplo 4


var speed : float = 10.0;
var rotationSpeed : float = 100.0;

function Update () {
    // Get the horizontal and vertical axis.
    // By default they are mapped to the arrow keys.
    // The value is in the range -1 to 1
    var translation : float = Input.GetAxis ("Vertical") * speed;
    var rotation : float = Input.GetAxis ("Horizontal") * rotationSpeed;
   
    // Make it move 10 meters per second instead of 10 meters per frame...
    translation *= Time.deltaTime;
    rotation *= Time.deltaTime;
   
    // Move translation along the object's z-axis
    transform.Translate (0, 0, -translation);
    // Rotate around our y-axis
    transform.Rotate (0, rotation, 0);
}

CAMBIAR DE PANTALLA CON UN BOTÓN

function OnGUI()
{
    if (GUI.Button(new Rect(254.9213.29050), "Jugar"))
        Application.LoadLevel("1");
}






TEMPORIZADORES

//A simple countdown timer
var myTimer : float = 5.0;

function Update () {
 if(myTimer > 0){
  myTimer -= Time.deltaTime;
 }
 if(myTimer <= 0){
  Debug.Log("GAME OVER");
 }
}

COLISIÓN


function OnTriggerEnter(otro: Collider)

{
    if(otro.tag =="Suelo")
    {
        Destroy (gameObject);
        Debug.Log ("Toca el suelo");
     }
    
     //Al terreno le habremos asignado el tag Suelo     
}

PERSECUCIÓN A UN OBJETO 2




function MoveTowards (current : Vector3, target : Vector3, maxDistanceDelta : float) : Vector3

Description

Moves a point current in a straight line towards a target point.
The value returned by this function is a point maxDistanceDelta units closer to a target point along a line between current andtarget. If the target is closer than maxDistanceDelta then the returned value will be equal to target (ie, the movement will not overshoot the target). Negative values of maxDistanceDelta can be used to push the point away from the target.

var objeto:Transform;
var sigue:int;
var speed:float;
function Start () {
//transform.position.x = 951.46;
//transform.position.y = 1.34;
//transform.position.z = 382.14;
}

function Update () {
 // The step size is equal to speed times frame time.
        var step = speed * Time.deltaTime;
        if (sigue ==1)
        {
        // Move our position a step closer to the target.
        transform.position = Vector3.MoveTowards(transform.position, objeto.position, step);
        }
}



function OnTriggerEnter(otro: Collider)

{
    if(otro.tag =="Persona")
    {
   
        Debug.Log ("Persona detectada");
        //transform.LookAt(objeto);
        //transform.Translate(1,0,0);
        // The target marker.
        sigue = 1;

   




     }
}


function OnTriggerExit (other : Collider) {

    Debug.Log ("Ya no te toco");
    sigue = 0;
}


CONTROL DE ANIMACIONES DE MECANIM




var animator:Animator;

var velocidad:float = 0;
function Start () {
animator = GetComponent("Animator");
}

function Update () {
velocidad=animator.GetFloat("velocidad");
if(Input.GetKey("up"))
velocidad = 0.2;
if(Input.GetKey("down"))
velocidad = 0;
if(Input.GetKey("space"))
velocidad = 0.7;
animator.SetFloat("velocidad",velocidad);
}


CREACIÓN  DE UNA EXPLOSIÓN


var explosion : Transform ;
function Start () {

}

function Update () {
 if (Input.GetKey("space"))
   Instantiate(explosion, transform.position, transform.rotation);

}

DISPARO

#pragma strict
var proyectil : Rigidbody;
function Start () {

}

function Update () {
if(Input.GetKey("f"))
{
   var clone : Rigidbody;
   clone = Instantiate(proyectil,transform.position, transform.rotation);
   clone.velocity = transform.TransformDirection(Vector3.forward*10);
   Destroy (clone.gameObject, 5);
}
 

}

.

Este script lo hemos obtenido de la excelente referencia de Unity en la sección instantiate.
El script del disparo es asignado a un objeto disparador desde el que partirá la bala al pulsar el botón fire1, normalmente si la definición es la que adopta Unity por defecto el ctrl.
El disparador estará asociado al personaje o al arma del disparo y debe carecer de colliders para que la bala no interactúe con él y produzca efectos indeseables.
Previamente habremos creado la bala. Esta bala será un prefab.  Es imprescindible que al prefab de la bala le hayamos añadido el componente Rigidbody, porque así definimos a la variable y porque es una exigencia de instantiate.

Instantiate nos clonará el proyectil referenciado en la posición  transform.position y en la rotación  transform.rotation.
Es importante tener en cuenta que  transform.position y tranform.rotation responden a la posición y rotación del objeto al que le hemos asignado el script, que será siempre el disparador.

Después le asignaremos una velocidad al objeto creado:

clone.velocity = transform.TransformDirection (Vector3.forward * 10);

Y finalmente es importante incorporar la dstrucción de la bala, que puede ser automática a partir de un tiempo definido o al colisionar con los diferentes blancos:

 Destroy(clone.gameObject, 2);

 

 

DISPARO DIRECTO

var distancia : float;
var velBala                            :float;
var origenDisparo   :Transform;
var obdisparo1                      :Transform;
static var vida:int ;
static var disparar= 0;
static var veaInicioBala:int = 1;
function Start()
{
vida = 100;
}
function Update ()
{
               var step = velBala * Time.deltaTime;
               .

               if ( veaInicioBala ==1 && disparar == 1)
               {
     
                              transform.position = origenDisparo.position;
                              veaInicioBala = 0;
               }
              
              
               if  ( disparar ==1 )
                              transform.position = Vector3.MoveTowards(transform.position, obdisparo1.position, step);
                              //Destroy(gameObject,2);
}


function OnTriggerEnter(otro: Collider)

{
    if(otro.tag =="Player")
    {
        transform.position = origenDisparo.position;
        vida -=10;
        veaInicioBala = 1;
        Debug.Log("Tocado "+vida);
     }
   
     //Al jugador le habremos asignado el tag Player  
}

function OnGUI () {
  //GUI.Label (Rect (10, 10, 100, 20),"Vida =" +vida);
  GUI.Box(Rect(10,10,100,20),"Vida ="+vida);
  
}
 

Este script responde a la necesidad de crear un disparo directo y automático hacia un objetivo definido,en nuestro caso por la variable "obdisparo1".
Para fijar el origen del disparo (origenDsiparo) creamos un objeto, que puede ser un empty game object, o cualquier otro objeto al que la hayamos hecho invisible. Este objeto es muy importante que carezca de colisiones, si no es así nuestra bala chocará con él y modificará de inicio su trayectoria de una manera indeseableLa bala o el proyectil tendrá , en contrapartida, collider para poder detectar sus colisones. El objeto al que se apunta deberá tener collider. A este objeto se le habrá asignado un tag en nuestro caso "Player" para poder detectar sus choques.
Aquí también hemos añadido una función onGui para poder controlar otras variables como la vida, por ejemplo.


BARRA DE VIDA, PUNTOS

 

static var vida;

function Start () {

vida = 100;

}

function Update () {

//La variable anirà modificant-se a mesura que el protagonista vagi rebent danys.

}

function OnGUI () {

    //GUI.Label (Rect (10, 10, 100, 20),"Vida =" +vida);

  GUI.Box(Rect(10,10,100,20),"Vida ="+vida);

  

ACCESO A LAS VARIABLES DE OTRO SCRIPT


other.GetComponent(jugador).vida -=1;



Suponemos que disponemos de un script llamado jugador.
En este script hemos declarado una variable llamada vida.
Precisamos acceder a esta variable desde otro script y para ello utilizamos GetComponent y, entre
paréntesis, indicamos el nombre del script sin comillas.
Tras el paréntesis, concatenado con el punto, añadimos el nombre de la variable que precisamos del primer script.



Ejemplo 2
// To access public variables and functions
// in another script attached to the same game object.
// (ScriptName is the name of the javascript file)
var other = gameObject.GetComponent(“ScriptName”);
// Call the function DoSomething on the script
other.DoSomething ();
// set another variable in the the other script instance
other.someVariable = 5;



Patrullando