Jump to content
Unity Insider Forum

Mehrere Canvas-Objekte in Szene


MoinPeter

Recommended Posts

Hi,

ich mache gerade eine Healthbar für einen multiplayer-Modus in Unity. Ich habe einen UI-Canvas mit Script, wo im Singleplayer die Healthbar in der Ecke angezeigt wird. Im Multiplayer soll diese jedoch deaktiviert und stattdessen über jedem Spieler eine Healthbar angezeigt werden. Allerdings benutzt meine Healthbar ein "Image"-Component (Ich benutze im Script "Image Type: Filled", das gibt's beim Sprite-Renderer leider nicht) und ist daher auf einen Canvas angewiesen.

Daher hab ich nun überlegt für jeden Spieler einen Canvas mit Healthbar als Child anzulegen, damit diese ihm folgt.

Wie performant ist es so viele Canvas-Objekte zu haben und gibt es einen bessern Weg/ bzw. macht das Sinn?

Viele Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich nutze immer ein Image als Background (z.B. Rot) und ein zweites Child-Image als eigentlichen Balken (z.B Grün).

Danach ändere ich die grösse des Childs rectTransform.deltaSize = new Vector2(health, 10) um die Lebenspunkte anzuzeigen.

Positionieren tu ich das ganze einfach mit transform.position = Camera.main.WorldToScreenPoint(target.position).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke mehrere Canvas(e) im "World Space"-Mode sind kein Problem. Damit kann man das Canvas im 3D-Raum positionieren und die Größe der Anzeige skaliert mit dem Abstand des Spielers/NPC zur Kamera. Möchte man dies nicht, dann ist denke die Methode von @Thariel besser, damit bleibt die Anzeigengröße unabhängig vom Abstand zur Kamera.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...