LDRZ Fortschritt #4: Versteckte Gegner färbeln

Es ist wieder Wochenende :)! Heute früh gleich damit begonnen versteckte Gegner zu färbeln. Was damit gemeint ist? Schaut am besten erstmal das Video:

Was gab es diesmal für Probleme? Lest selbst…

On-the-fly die Shader wechseln

Wie man die Shader wechselt habe ich recht schnell herausgefunden. Hier war wie immer die Unity Docu eine große Hilfe. Doch was seltsam war: Ich konnte den Default-Diffuse shader nicht auswählen. Weder über den Unity-Editor, noch per Skript selbst. Hierzu musste ich zunächst die built-in-shader aus dem Unity Download Archiv. Herunterladen und ins Projekt importieren. Dann lief es aber wie gewünscht.

Outline Shader

Hier wurde ich im Unity-Wiki fündig. Sehr schöner Shader, ließ sich ohne Probleme auch in Unity 4 importieren. Ganz perfekt passt es zwar noch nicht, aber das kann man ja später noch anpassen (die Outline ist mir noch etwas zu hart).

Skelett sichtbar?

Jetzt nur noch eine Methode zum Feststellen, ob das entsprechende Skelett überhaupt sichtbar ist. Die Methode renderer.isVisible hilft hier zunächst für eine einfache Überprüfung, ob das Objekt überhaupt im Sichtbereich der (bzw. einer) Kamera ist und anschließend wie gewohnt per RayCast prüfen, ob sich noch Wände zwischen Skelett und Kamera befinden.
Ich bin noch nicht ganz glücklich mit der Lösung, da der Übergang im Moment relativ abrupt geschieht. Vielleicht muss ich hier nochmal nachbessern.

Next steps

Oh 🙂 hatte ich nicht letztens was von EnemyActiveIndicator geschrieben? Vielleicht kommt er diesmal wirklich als nächstes dran. Da ich das für den Player ja schon implementiert habe kam mir dieses Thema hier spannender vor :D.

Was sagt ihr zu der Funktion? Sollen die Gegner hinter Wänden sichtbar sein, oder lieber nicht? Oder soll man gar die Wände transparent machen, damit man die Gegner besser sieht? Hier gibt es verschiedenste Ansätze aus diversen Spielen… Ich glaube mir gefällt der hier gewählte am besten :).

Ein Gedanke zu „LDRZ Fortschritt #4: Versteckte Gegner färbeln

  1. Mit ein bisschen Feintuning schaut das dann so aus 🙂

    Gefällt mir deutlich besser, ich denke so kann man’s schon fast lassen. Was wurde geändert? Die Outline-Stärke wurde auf 0 gesetzt, die Outline-Farbe nur auf 0.6,0.2,0.2 und der Blend-Effekt auf Multiplicativex2. Zusätzlich geht der „isVisible“-RayCast nun nicht mehr auf die Füße des Skeletts sondern auf dessen Schultern.

    Welche Variante gefällt euch besser?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.