sábado, 14 de febrero de 2015

Posición aleatoria del Player o GameObject - Random Position GameObject (Player)

 


En algunos juegos y más en los tipos de estrategia se observa que la posición del jugador cambia cada vez que se refresca o se hace reload de la escena. En otras palabras lo que deseo indicarles, es que mediante un Script podemos cambiar la posición del Player cada vez que empieza la escena.

Así de esta manera el Player no podrá aprenderse el mapa (laberinto) y lo hará más interesante.


El siguente Script se encuentra desarrollado en JS o JavaScript. En el mismo vamos a declarar una variable Posfinal que permitirá ubicar al player en nuestra nueva posición. Y así mismo creamos cada una de las posiciones que deseamos donde aparezca el player (pos1, pos2, pos3, pos4, etc). Estas variables son de tipo Vector3 que sirve para almacenar las coordenadas en X, Y, Z pero si quisieramos hacerlo en 2D podemos trabajar con el Vector2 que usa las coordenadas X y Y.



Este Script se lo deben de poner al GameObject o Player que desean que cambie de posición.



* JS
-------------------------------------------
var posFinal; var pos1 = Vector3(1,3,5); var pos2 = Vector3(0,52,5); var pos3 = Vector3(80,52,5); var pos4 = Vector3(5,82,20); var pos5 = Vector3(100,100,5); var arreglo = Array(pos1, pos2, pos3, pos4, pos5);
//Los valores del Array se cuentan desde 0 en adelante. function Start (){ posFinal = arreglo[Random.Range(0,4)]; } function Update (){ transform.Translate(posFinal - transform.position); Debug.Log (posFinal); // muestro la posición actual }
-------------------------------------------

Si deseamos trabajar en un random de coordenadas de forma aleatoria entre un rango de posiciones podemos usar el siguiente script. En el cual posfinal toma los valores del Vector3 (x, y, z) y en cada uno usamos la opción de Random.Range (valor rango inicial , valor rango final). De esta manera cada vez que inicie la escena la posición del objeto que tenga el Script cambiará entre el rango de posiciones que se ha asignado.

* JS
-------------------------------------------
var posFinale; function Start (){ //pos x, y, z posFinal = Vector3(Random.Range (-17.0f,18.0f),Random.Range (-10.0f,11.0f),Random.Range (-20.0f,1.0f)); } function Update (){ transform.Translate(posFinal - transform.position); Debug.Log (posFinal); // muestro la posición actual }
-------------------------------------------

No hay comentarios:

Publicar un comentario