Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Centauro5legs en Octubre 04, 2017, 10:53:08 PM

Título: [Ayuda] Convertir Material Opaco en Transparente
Publicado por: Centauro5legs en Octubre 04, 2017, 10:53:08 PM
Como lo dice el Titulo, como podría mediante un script, cambiar el tipo de material de "Opaco" a "Transparente". Es decir, permitir que se transparente.
Título: [Ayuda] Convertir Material Opaco en Transparente
Publicado por: enelmenu en Octubre 04, 2017, 11:20:14 PM
Deberias obtener el Componente Renderer del objeto y almacenarlo en una variable, y apartir de ahi retocar el Renderer.material.
 
Algo asi:

Inserta el script en el objeto a provocar la transparencia
 

   public class Example : MonoBehaviour
    {
        public Renderer _renderer;
     
         void Awake()
        {
            _renderer = GetComponent<Renderer>();
        }
     
         void Update()
        {
           if (Input.GetKeyDown(KeyCode.E))
              {
                _renderer.material.color = new Color(1, 1, 1, Cero); //unityspain.com no toma el numero 0 asi solo, nose por que.
              }
         
           if (Input.GetKeyDown(KeyCode.R))
            {
                 _renderer.material.color = new Color(1, 1, 1, 1);
            }
        }
    }

 
Y apartir de aca espero que allas entendido el concepto, podes hacer un lerp al Color.a para darle un efecto suave
 
Me parece que hubo un malentendido en mi respuesta, te respondi como retocar un color de un material pero no como retocar su tipo de renderizado:
 
Iguamente lo que escribi arriba te sirve

Aca esta tu solucion
 
https://docs.unity3d.com/ScriptReference/Material-shader.html (https://docs.unity3d.com/ScriptReference/Material-shader.html)
Título: [Ayuda] Convertir Material Opaco en Transparente
Publicado por: lightbug en Octubre 05, 2017, 06:44:55 AM
Depende que sea transparente, en Unity un "transparent" es un material tipo vidrio, que tiene algo pero que deja pasar luz, despues tenes los alpha cuttof o fade que es un material que directamente borra todo color en determinadas partes (canal alpha) , una hoja de un arbol por ejemplo. No se que es lo que queres porque podes tener un Dissolve que hace algo asi:
 


   
eature=oembed" width="480">

 
por eso si aclaras un poco mas quizas se puede llegar a lo que queres. Si no es nada de esto y es tocar el alpha directamente lo que dice @enelmenu te deberia funcionar.
 
 
Título: [Ayuda] Convertir Material Opaco en Transparente
Publicado por: Igor en Octubre 05, 2017, 02:06:02 PM
tambien puedes crear dos materiales, uno diffuse (o lo que sea) y otro transparent(diffuse, cutout o lo que quieras) y luego cambiarlos via script: (en el ejemplo se cambia con las teclas "1" y "2")
 

using...
public class materialSwitcher... {
   public Material mat1;
   public Material mat2;
   void Update() {
      if (Input.GetKeyDown(KeyCode.Alpha1)) {
         renderer.material = mat1;
      }
      if (Input.GetKeyDown(KeyCode.Alpha2)) {
         renderer.material = mat2;
      }
   }
}