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.
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)
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.
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;
}
}
}