Red Punch Geschrieben 24. September 2015 Melden Share Geschrieben 24. September 2015 Hallo, ich habe da mal wieder eine frage ich würde gerne mit dem neuen UGUI den Slinder via Code ansprechen wie kann ich das am besten tun mein momentaner Code sieht so aus. using UnityEngine; using UnityEngine.UI; using System.Collections; public class PlayerHUD : MonoBehaviour { public Slider HealthImage; public Slider ManaImage; int health; int healthmax; int mana; int manamax; int xp; int xpmax; int level; string health_prop = "health"; string health_max_prop = "health-max"; string mana_prop = "mana"; string mana_max_prop = "mana-max"; string xp_prop = "experience"; string xp_max_prop = "experience-max"; string level_prop = "level"; public Slider Health; public float healthBarLength; // Use this for initialization void Start () { // Register for ClientAPI.GetPlayerObject().RegisterPropertyChangeHandler(health_prop, HealthHandler); ClientAPI.GetPlayerObject().RegisterPropertyChangeHandler(health_max_prop, HealthMaxHandler); ClientAPI.GetPlayerObject().RegisterPropertyChangeHandler(mana_prop, ManaHandler); ClientAPI.GetPlayerObject().RegisterPropertyChangeHandler(mana_max_prop, ManaMaxHandler); ClientAPI.GetPlayerObject().RegisterPropertyChangeHandler(xp_prop, XpHandler); ClientAPI.GetPlayerObject().RegisterPropertyChangeHandler(xp_max_prop, XpMaxHandler); ClientAPI.GetPlayerObject().RegisterPropertyChangeHandler(level_prop, LevelHandler); // The player may have changed scenes, but their stats were not sent back down, so let's take a look if (ClientAPI.GetPlayerObject() != null) { if (ClientAPI.GetPlayerObject().PropertyExists(health_prop)) { health = (int)ClientAPI.GetPlayerObject().GetProperty(health_prop); } if (ClientAPI.GetPlayerObject().PropertyExists(health_max_prop)) { healthmax = (int)ClientAPI.GetPlayerObject().GetProperty(health_max_prop); } if (ClientAPI.GetPlayerObject().PropertyExists(mana_prop)) { mana = (int)ClientAPI.GetPlayerObject().GetProperty(mana_prop); } if (ClientAPI.GetPlayerObject().PropertyExists(mana_max_prop)) { manamax = (int)ClientAPI.GetPlayerObject().GetProperty(mana_max_prop); } if (ClientAPI.GetPlayerObject().PropertyExists(xp_prop)) { xp = (int)ClientAPI.GetPlayerObject().GetProperty(xp_prop); } if (ClientAPI.GetPlayerObject().PropertyExists(xp_max_prop)) { xpmax = (int)ClientAPI.GetPlayerObject().GetProperty(xp_max_prop); } if (ClientAPI.GetPlayerObject().PropertyExists(level_prop)) { level = (int)ClientAPI.GetPlayerObject().GetProperty(level_prop); } } } // Update is called once per frame void Update () { } public void HealthHandler(object sender, PropertyChangeEventArgs args) { health = (int)ClientAPI.GetPlayerObject().GetProperty(health_prop); } public void HealthMaxHandler(object sender, PropertyChangeEventArgs args) { healthmax = (int)ClientAPI.GetPlayerObject().GetProperty(health_max_prop); } public void ManaHandler(object sender, PropertyChangeEventArgs args) { mana = (int)ClientAPI.GetPlayerObject().GetProperty(mana_prop); } public void ManaMaxHandler(object sender, PropertyChangeEventArgs args) { manamax = (int)ClientAPI.GetPlayerObject().GetProperty(mana_max_prop); } public void XpHandler(object sender, PropertyChangeEventArgs args) { xp = (int)ClientAPI.GetPlayerObject().GetProperty(xp_prop); } public void XpMaxHandler(object sender, PropertyChangeEventArgs args) { xpmax = (int)ClientAPI.GetPlayerObject().GetProperty(xp_max_prop); } public void LevelHandler(object sender, PropertyChangeEventArgs args) { level = (int)ClientAPI.GetPlayerObject().GetProperty(level_prop); } } Hoffe mir kann da wer auf die Sprünge helfen.. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mark Geschrieben 24. September 2015 Melden Share Geschrieben 24. September 2015 Heilige Mutter der Wiederholungen! Aber zu deiner Frage: http://docs.unity3d.com/462/Documentation/ScriptReference/UI.Slider-value.html HealthImage.value = bla; Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hrungdak Geschrieben 24. September 2015 Melden Share Geschrieben 24. September 2015 Ich nehme an, so Sachen wie die hier hast du schon durch? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Red Punch Geschrieben 24. September 2015 Autor Melden Share Geschrieben 24. September 2015 Auf die Idee kam ich auch schon nur bekomme es nicht via LTE/HSDPA geladen.. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hrungdak Geschrieben 24. September 2015 Melden Share Geschrieben 24. September 2015 Häh? Was hat das mit LTE oder allgemein mit Mobilfunk zu tun? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Red Punch Geschrieben 24. September 2015 Autor Melden Share Geschrieben 24. September 2015 @Mark Danke hat geholfen! Wiederholung dann Sorry. @Hrungdak Mach mal mit so einer Verbindung ein Video auf... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mark Geschrieben 24. September 2015 Melden Share Geschrieben 24. September 2015 Mit Wiederholung meinte ich das was du in deinem Code machst, jede gefühlte zweite zeile fängt mit ClientAPI.GetPlayerObject() an, das erscheint mir irgendwie unnötig. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Red Punch Geschrieben 24. September 2015 Autor Melden Share Geschrieben 24. September 2015 Nein werden alle gebraucht es ist MMORPG. Hätte ich glaube ich erwähnen sollen :-( jede Wiederholung die du sendest wird vom Server verwaltet. Aber klappt jetzt danke dir nur er zeigt mir das nicht ganz an mit dem UGUI keine ahnung warum noch net aber in Scene selber funtzt es nur auf der Camera wird es jetzt noch nicht angeben... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mark Geschrieben 24. September 2015 Melden Share Geschrieben 24. September 2015 Das macht überhaupt kein Sinn, ich glaube du verstehst gar nicht was ich meine. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hrungdak Geschrieben 25. September 2015 Melden Share Geschrieben 25. September 2015 @Mark Danke hat geholfen! Wiederholung dann Sorry. @Hrungdak Mach mal mit so einer Verbindung ein Video auf... Ach so, du entwickelst Spiele auf dem Handy, sorry, hab ich nicht gewusst. Aber LTE ist wahrscheinlich schneller als meine aktuelle Internetverbindung am PC... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Red Punch Geschrieben 25. September 2015 Autor Melden Share Geschrieben 25. September 2015 Nein ich habe die Internet Verbinung vom LTE aber da Base und o2 Fusion hatten ist die verbindung oft bescheiden...:-( Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MaZy Geschrieben 26. September 2015 Melden Share Geschrieben 26. September 2015 Wollte hinzufügen: Allgemein alle Werte die du im Inspector siehst sollte den gleichen Namen als Variable haben. Groß- und Kleinschreibung könnte variieren. Text Component.text Value Component.value Image Component.image usw.. Damit auch Slider.value Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sargon Geschrieben 27. September 2015 Melden Share Geschrieben 27. September 2015 Das macht überhaupt kein Sinn, ich glaube du verstehst gar nicht was ich meine. Nein werden alle gebraucht es ist MMORPG. Hätte ich glaube ich erwähnen sollen :-( jede Wiederholung die du sendest wird vom Server verwaltet. Aber klappt jetzt danke dir nur er zeigt mir das nicht ganz an mit dem UGUI keine ahnung warum noch net aber in Scene selber funtzt es nur auf der Camera wird es jetzt noch nicht angeben... https://de.wikipedia...repeat_yourself Teile des Sourcecodes den du gepostet hast wiederholen sich ständig, wie Mark schon probierte dir zu erklären @Red Punch. Den Aufruf von ClientAPI.GetPlayerObject() könnte man in einer Methode zusammenfassen und schön abstrakt mit Parametern gestalten, sodass dein Code übersichtlicher und einfacher zu bearbeiten ist. Hat nichts mit der direkten Funktion dieser Aufrufe zutun. 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.