Jump to content
Unity Insider Forum

Shader mit Alpha


Kojote

Recommended Posts

Grüße!

Ich möchte bei meinem Charakter gern die Transparenz ändern, um so ein langsames entfernen vom Spielfeld zu ermögliche.

Den Code hab ich schon:

this.gameObject.GetComponentInChildren<SkinnedMeshRenderer>().material.color.a = 0;

Ich brauche aber noch einen Shader der diesen Befehl auch annimmt. Hab nun schon mehrere Tutorials gelesen und man sagt nur, du brauchst einen Shader der das auch zulässt. Habt ihr eine Ahnung welchen Shader ich für den Charakter verwenden könnte?

Grüße Kojote

Link zu diesem Kommentar
Auf anderen Seiten teilen

Klasse, ich danke dir!

EDIT:

Also so richtig wills nicht. Ich hab mir den Alpha genommen und nun das ausgeführt:

	materialAlpha = this.gameObject.GetComponentInChildren<SkinnedMeshRenderer>().material.color.a;
	while (materialAlpha >= 0.1f) {
            materialAlpha -= 0.01f;
            yield return new WaitForFixedUpdate();
            Debug.Log(materialAlpha);
        }

Die Hilfe in VS sagt mir a wäre richtigerweise der Alpha. Nur komisch ist, in Unity ist er 255 groß, in VS mit Debug nur 1. Gut, Script angepasst, aber er zählt nach unten, aber die Transparenz ändert sich nicht. :huh:

EDIT:

So, habs nun hin bekommen, warum ichs aber dermaßen kompliziert schreiben muss, damit was passiert versteh ich auch nicht:

	material = this.gameObject.GetComponentInChildren<SkinnedMeshRenderer>().material;
        material.SetFloat("_Mode", 4f);
        col = material.GetColor("_Color");
    	col.a = 105; // 0-255
        material.SetColor("_Color", col);

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, das Problem ist SetColor arbeitet mit RGB-Wert 0-255 und der Shader arbeitet mit 0-1.
Mit SetFloat "_Mode" setzt du den Modus des Shaders vermutlich auf "Fade".

"_Mode" und "_Color" sind dabei immer Properties des Shaders, die man aber von Außen leider nicht sieht, daher ist es immer ein wenig "Tricky".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...