114. CLASE RANDOM







Clase para generar números aleatorios.


VARIABLES DE CLASE:

seed:

static var seed : int


Coloca la semilla para el generador de números aleatorios.


value:

static var value : float


Devuelve un número aleatorio entre 0.0 (inclusive) y 1.0 (inclusive).


for(var x: int =0; x<10; x++){
print(Random.value);
}


Podréis comprobar que los diez números que nos aparecerán en pantalla están entre ambos valores.


insideUnitSphere:

static var insideUnitSphere : Vector3


Devuelve un punto aleatorio dentro de una esfera con radio 1.


transform.position = Random.insideUnitSphere * 2;


Este ejemplo situaría nuestro cubo en un punto aleatorio dentro de una esfera (3 dimensiones) con un radio de 2 unidades.


insideUnitCircle:

static var insideUnitCircle : Vector2


Devuelve un punto aleatorio dentro de un círculo con radio 1.


var newPosition : Vector2 = Random.insideUnitCircle * 5;

transform.position.x = newPosition.x;
transform.position.y = newPosition.y;


en este caso nuestro cubo se movería dentro de un círculo (2D) con radio de 5 unidades.


onUnitSphere:

static var onUnitSphere : Vector3

Devuelve un punto aleatorio sobre la superficie de una esfera con radio 1.


function FixedUpdate(){
rigidbody.velocity = Random.onUnitSphere * 10;
}


Esta función mueve al rigidbody de nuestro cubo a una velocidad de 10 en una dirección aleatoria, por lo que no esperéis ver otra cosa al darle al play que un cubo volviéndose loco.


rotation:

static var rotation : Quaternion


Devuelve una rotación aleatoria (read only)


var prefab : GameObject;
Instantiate(prefab, Vector3.zero, Random.rotation);


Este ejemplo instanciaría un nuevo gameobject en el centro de la escena y con una rotación aleatoria.


FUNCIONES DE CLASE:

Range:

static function Range (min : float, max : float) : float


Devuelve un float aleatorio entre un min (inclusive) y max (inclusive).


var prefab : GameObject;

function Start () {
var position: Vector3 = Vector3(Random.Range(-5.0, 5.0), 0, Random.Range(-5.0, 5.0));
Instantiate(prefab, position, Quaternion.identity);
}


Si arrastramos la esfera a la variable expuesta prefab, al darle al play observaremos que se clona una instancia de la misma y aparece en un lugar aleatorio en un margen de 5 metros en los ejes X y Z.

static function Range (min : int, max : int) : int

La misma función, pero admite y devuelve integers.

POSTED BY UnityScripts
POSTED IN
DISCUSSION 2 Comments
Con la tecnología de Blogger.