LA CÁMARA APUNTA A UN OBJETO
function Start () {
}
var objeto : Transform;
function Update () {
transform.LookAt(objeto);
}
var bola: Transform;
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);
}
LA CÁMARA SIGUE A UN OBJETO
var bola: Transform;
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(400, 261, 1);
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.9, 213.2, 90, 50), "Jugar"))
Application.LoadLevel("1");
}
{
if (GUI.Button(new Rect(254.9, 213.2, 90, 50), "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");
}
}
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
}
#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);
}
}
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;
}
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
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 indeseable. La 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
// 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