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.

miércoles, 4 de febrero de 2015

#Script Cronometro descendente #Unity - Down Timer


El siguiente script es de formato *js o JavaScript y permite contar el tiempo de forma descendente.

Muy útil cuando deseas controlar el tiempo que transcurre en una escena. Este script te permite darle un tiempo de vida a la escena, por ejemplo en el juego de Mario Bros los usuarios tienen un tiempo límite para completar el nivel o sino mueren. 

sábado, 24 de enero de 2015

#Script 2D Character Controller Unity - Controlador de Player en 2D


Como se habrán dado cuenta en #Unity al momento de crear un proyecto nuevo nos permite importar los controles de Character Controller dentro de los cuales contamos con los #Scripts de la 1era. Persona (FPC-First Person Controller) y 3ra. Persona (3rd Person Controller). 

martes, 4 de noviembre de 2014

#Script Mirar a otro objeto #unity3d #javascript C#


El siguiente Script está basado en propiedades básicas predeterminadas por Unity, mediante la cual podemos hacer que la cámara o un personaje siga por así decirlo con la "vista" a otro objeto.

miércoles, 27 de agosto de 2014

#Script Colisión o Collision GameObject #unity3d #javascript

La colisión o collision en #unity3d es la acción por la cual un gameobject u objeto choca con otro. Luego de este encuentro se puede indicar que el mismo desaparezca o que realice otra acción por ejemplo bajar vidas. ¿Pero como hacer para que se active la colisión cuando toca otro objeto y este no le cae encima?

Ejemplo tomado del sitio oficial de Unity3d - Sección Tutoriales.


En #unity así como existe el OnTriggerEnter para el ingreso en zonas sensibles, existe también el OnCollisionEnter. Este permite activar la acción cuando el elemento entre en contacto con otro. Pero deben tener en cuenta que esto solo funciona cuando el elemento que tiene el script cae y toca el otro. O por lo menos a mí solo me funciona de esa forma. 


Para lo cual he recolectado un video tutorial de Will Goldstone en el cual ejemplifica lo indicado.


En el ejemplo que vimos el cubo posee el script y se activa al chocar el cubo con el plano. El script que se usa en este video es el siguiente. La acción Debug.Log("mensaje"); sirve para enviar un mensaje por consola, en este caso para validar que el cubo toca el piso.


* JS
-------------------------------------------

function OnCollisionEnter (col : Collision)
{
    if(col.gameObject.name == "prop_powerCube")
    {
        Destroy(col.gameObject);
    }

}
-------------------------------------------


Pero que pasa si no queremos que la colisión se active cuando cae el objeto sobre el player sino cuando es tocado por el player o cuando este lo roza. Por ejemplo cuando un enemigo nos ataca.

Para solucionar este inconveniente debemos de usar el siguiente Script en JS o JavaScript para que al momento que el player toque un objeto este comience a enviar un mensaje. Por ejemplo si deseamos que cuando el player toque una pared esta le quite vidas, o para que cuando el enemigo colisione con el player este le quite vidas también.

* JS
-------------------------------------------

function OnControllerColliderHit ( hit:ControllerColliderHit  ){
if( hit.gameObject.tag == "Enemigos"){
Debug.Log ("me están matando");
}
}

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

Con este script estamos indicando que cuando el Player colisione con el objeto de tag Enemigos se envíe el mensaje. Como observar en este caso quien posee el script es el Player y necesitar crear los tags necesarios para los enemigos, objetos u otros a usar.

Si no sabes como crear tags puedes revisar el siguiente link. 

miércoles, 20 de agosto de 2014

#Script cambiar textura skybox #unity3d #javascript

En el desarrollo de videojuegos llega un momento en el cual es necesario cambiar la textura que posee el skybox o cielo por otra diferente al activar un objeto o entrar a un nivel diferente. 

Ejemplo: cuando deseamos que al pasar por una zona sensible el cielo se oscurezca o se aclare.

En el siguiente script en Javascript indicaré de forma sencilla como afectar la textura del Skybox.



* JS
-------------------------------------------
var mat1 : Material;
var mat2 : Material;

function OnTriggerEnter () {
      RenderSettings.skybox = mat2;
}

function OnTriggerExit () {
      RenderSettings.skybox = mat1;
}

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

El Script posee dos variables de tipo "material" en el cual almacenaremos nuestra textura del cielo o del skybox. Es necesario indicar que el material debe de contener las 6 texturas para que el efecto visual sea el apropiado. 



Estos materiales se activaran al momento que entramos o salimos de una zona sensible y en el código RenderSettings accedemos a la opción skybox. Que es idéntico al hacerlo por medio del menú principal en la opción de Edit / RenderSettings.

Y con eso ya tenemos el script que al ingresar a la zona sensible se muestre el material 2 y al salir se muestre el material 1. Osea que se cambie el cielo al entrar a la zona.

lunes, 18 de agosto de 2014

#Script boton touch salir juego #unity3d c# - game touch button

Cuando se elaboran juegos para dispositivos móviles como Android o IOS siempre es necesario elaborar el botón de salir de la aplicación para permitir al usuario regresar al uso normal de su teléfono.


El siguiente script está codificado para su uso TOUCH o TÀCTIL.



El lugar donde se coloque el botón de salir puede ser en el menú, así como también en cada paso de un nivel a otro. Esto permitirá al usuario regresar a su dispositivo sin ningún inconveniente y sobretodo si molestia.

El siguiente código se encuentra desarrollado en C#.

* C#
-------------------------------------------

using UnityEngine;
using System.Collections;

public class boton_salir : MonoBehaviour {

public GUITexture boton;
void Update () {
if (Input.touchCount > 0) {
for (int i = 0; i < Input.touchCount; i++) {
Touch t = Input.GetTouch (i);
if (t.phase == TouchPhase.Began) {
if (boton.HitTest (t.position, Camera.main)) {
Application.Quit();
}
}
}
}
}
}

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

Como pueden observar en el código la sentencia para salir de la aplicación es : Application.Quit();
Se ha creado una variable para almacenar la textura del botón. Y en el Update se valida la acción de tocar la pantalla, en otras palabras se valida el touch.
El primer if sirve para el funcionamiento de la opción touch. Y el segundo y tercero sirva para validar que el botón sea el que se haya presionado. Por eso la validación if (boton.HitTest (t.position, Camera.main))