Jump to content
Unity Insider Forum

Rahmen/Box um Ziel?


docdum

Recommended Posts

Hallo ich habe eine Frage zur Vorgehensweise und ggf. für verwendbare Funktionen.

Wenn ich eine Rakete verschieße und ein Ziel in Reichweite ist, und die Rakete es als Ziel erfasst hat um eben dieses Objekt einen roten Rahmen/rote Box machen.

Ich hatte im Internet einige Beispiele gefunden, allerdings waren die so kompliziert wie auch die Beispiele aus dem Unity-Store.

Deswegen frage ich mal hier.

Gruß 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kommt darauf an, wie dieser Rahmen aussehen soll. Komplexere Methoden sind spezielle Meshshader oder auch ein Kameraposteffekt.

Für eine einfache Variante würde ich einfach einen Unity-Cube nehmen und diesem ein Material verpassen mit unten aufgeführter Textur.
Dann erstellst du noch folgendes Material und weist dieses dem Cube zu.
- Unity Standard
- Rendering Mode "Transparent" ("Cutout" würde auch gehen, Nachteil: Ränder können zerfranst wirken, Vorteil: Metallic und Smoothness wirken nur auf den Rand)
- Metallic 0 
- Smoothness 1
- Albedo Textur siehe unten
- Farbe Rot

Den Cube skalierst du dann über ein Skript auf die Größe die dein Objekt hat und legst diesen um dein Objekt.
Der Knackpunkt dafür ist die Textur, ich habe dir eine erstellt:

x2UQyBu.png

Ergebnis:

EJPr2iu.png

PS:
Um alle Kanten des Cubes zu sehen bräuchtest du einen "Double Sided Transparent Shader" oder du müsstest den Cube aus 12 einzelnen Quads zusammensetzen.
Ich hatte das hier schon einmal erklärt:

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein anderer Ansatz (wenn es ein 2D-Quadrat sein soll wie eine Art Zielsucher), wäre ein Sprite als UI-Image zu benutzen. Mittels Script, kann man dann über die Position des zu Fokussierenden Objektes das Image auf dieses Objekt Zentrieren. Ist natürlich etwas mehr Scriptarbeit als der Ansatz von @Zer0Cool, allerdings wäre die Variante besser wenn es darum geht, ein 2D Quadrat zu erzeugen, welches in bestimmtes Objekt im Visier hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, ich dachte irrtümlich, du wolltest einen Rahmen um das komplette 3D-Objekt legen. Du kannst aber auch einfach ein Quad (Unity-Primitive) nehmen und das Material wie ich es beschrieben habe zuweisen. Das ist eigentlich nix anderes als, wenn man es über die Unity-UI macht. Die Unity-UI-Variante wäre evtl. einfacher, wenn dein Rechteck sich nur auf der UI-Plane (d.h. nicht in den 3D-Raum - Z-Richtung - hineingehen soll) bewegen soll. Allerdings muss man hier wieder das UI-Element am 3D-Objekt ausrichten (was vermutlich dann wieder von der Komplexität her auf's selbe rauskommt).

PS:
Solltest du die Quad-Variante wählen, dann kannst du auch einen Sprite-Shader verwenden, der ist etwas performanter:
- "Sprites/Diffuse" (mit Lichteinfluss)
- "Sprites/Default" (ohne Lichteinfluss)

D1taZ9s.png

4APHn8l.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...