MoinPeter Geschrieben 26. Mai 2018 Melden Share Geschrieben 26. Mai 2018 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 More sharing options...
Thariel Geschrieben 26. Mai 2018 Melden Share Geschrieben 26. Mai 2018 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 More sharing options...
Zer0Cool Geschrieben 26. Mai 2018 Melden Share Geschrieben 26. Mai 2018 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 More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.