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.

6 comentarios:

  1. muy bien inplementado el scrip pero la pregunta que duele, que skybox ocuparia en si ara lograr el efecto !?

    ResponderEliminar
    Respuestas
    1. Bueno en este caso puedes usar un skybox de día y otro de noche para que se visualice el efecto.

      Eliminar
  2. Hola Alfonso soy principiante en Unity.. la pregunta es.. y si en lugar de cambiar el cielo quisieramos cambiar el material de una mesa cada vez que hicieramos click sobre ella? Cómo deberíamos aplicar el script?

    Gracias!

    ResponderEliminar
    Respuestas
    1. Estimado Ricardo, con respecto a tu consulta a continuación adjunto un script que te puede ayudar, cualquier cosa me avisas.
      Saludos.

      Script JS+------

      var mat : Material;

      function OnMouseDown(){
      if(Input.GetMouseButton(0)){
      renderer.material = mat;
      }
      }

      --------

      Referencia: https://www.youtube.com/watch?v=PyGjOqf667c

      Eliminar
  3. Alonso Veloz soy nuevo programando conmo puedo hacer un Sistema de Guardar y Cargar partidas en unity?

    ResponderEliminar
    Respuestas
    1. Estimado la forma más fácil y rápida es usar la clase PlayerPref de unity

      https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

      Eliminar