Sugarbaby Geschrieben 24. Oktober 2018 Melden Share Geschrieben 24. Oktober 2018 Hallo, mein UI soll mehrere Buttons bekommen, mit denen jeweil eine andere Szene/Möblierung eines Raumes einblendet/ausblendet werden kann. Videos über die Arbeit mit Buttons/Canvas´/EventSystem habe ich mir angesehen. Speziell meine Anforderung, mit einem Button unterschiedliche Raumkonzepte ein- und auszublenden, habe ich nicht heraus ziehen können. Frage also: komme ich der Lösung meiner Anwendung mit "EventSystem", welches ich den jeweiligen Buttons zuordne näher? Oder bin ich da auf dem falschen Dampfer. Cheers, SB Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 24. Oktober 2018 Melden Share Geschrieben 24. Oktober 2018 Das EventSystem hat erstmal nichts damit zu tun. Es kümmert sich darum, dass mit Buttons und anderen UI-Elementen interagiert werden kann, z.B. durch Mausklicks oder Touch. Was allerdings bei welchem Button passiert, ist dem EventSystem komplett egal - kümmere dich daher nur um die Buttons. Dein Button hat ja ein UnityEvent mit dem Titel "On Click". Das ist diese Liste, zu der du sozusagen Reaktionen hinzufügen kannst. Wenn der Button jetzt durch das EventSystem angepiekst wird, egal ob durch Klick, Touch oder sonst irgendetwas, dann werden alle Reaktionen ausgelöst, die der Button in dieser Liste hat. Du willst also, dass "Button I" zwei deiner GameObjects deaktiviert und eines aktiviert. Oder von mir aus auch, dass der dritte Button beide aktiviert, wenn ich das richtig sehe. Tatsächlich könntest du jetzt jeweils zwei bzw. drei Reaktionen in die Liste tun und deine GameObjects hineinziehen. Dann aus dem Drop Down-Menü GameObject.SetActive auswählen und damit die richtigen Objekte an- oder ausschalten, indem du entsprechend das dann erscheinende Häkchen setzt - oder eben nicht. Allerdings wird das etwas nervig, wenn noch einmal mehr Modelle hinzukommen, weil du dann auf jedem der Buttons jeweils wieder eine Zeile hinzufügen und einrichten musst. Daher ein anderer Vorschlag. Du nimmst folgendes Script: public class ActivateFromList : MonoBehaviour { public GameObject[] allObjects; public void Activate(GameObject objectToActivate) { foreach (var obj in allObjects) { obj.SetActive(obj == objectToActivate); } } } Dieses Script packst du auf ein beliebiges GameObject in der Szene, auch wenn sich ein Parent deiner zu (de)aktivierenden GameObjects anbieten würde. Dann ziehst du alle diese Objekte in die Liste im Inspektor. Deinen Butons weist du jeweils nur noch eine Reaktion in der "On Click"-Liste zu. Dort ziehst du das GameObject mit diesem Script hinein, wählst aus der Liste ActivateFromList.Activate aus und ziehst dann nur noch das GameObject in das Parameterfeld unten rechts, das aktiviert werden soll. Das Script deaktiviert dann automatisch alle anderen GameObjects aus der Liste. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 25. Oktober 2018 Autor Melden Share Geschrieben 25. Oktober 2018 Ich würde erst mal die zu Fuß Variante, also die Erstere, probieren wollen, dann die Scriptversion. Zumal es nicht mehr als 3 unterschiedliche Zustände werden dürften, und ich mit dem scripten noch keine Berührung hatte (auch wenn es hier ziemlich simpel erscheint). In der Liste (siehe screenshot) des Button I sind jetzt meine drei Zustände wovon der Zustand I sichtbar und II und III unsichtbar bleiben sollen. Selbiges für die Buttons II und III. Wo ich hake ist deine Formulierung "..und deine GameObjects hineinziehen". Welcher Vorgang ist das? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 25. Oktober 2018 Autor Melden Share Geschrieben 25. Oktober 2018 Ok - "GameObjekts hineinziehen", habe ich ja schon gemacht - es meint hier die 3 Zustände, oder? Aber 2 bzw. 3 Reaktionen in die Liste tun...An/Aus?...hmmmm´... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. Oktober 2018 Melden Share Geschrieben 25. Oktober 2018 Da, wo "No Function" steht, kannst du jetzt auswählen, was gemacht werden soll. Generell gilt für jede dieser Zeilen: Wer - unten links (da ziehst du das Objekt hinein, das etwas machen soll) Was - oben rechts (da wählst du dann eine der Komponenten des Objekts aus oder das GameObject selbst, und dann eine Funktion davon, die aufgerufen werden soll, oder einen Wert, der geändert werden soll) Wie - unten rechts (da erscheint dann ein Feld, das vom "Was" abhängt, z.B. ein Zahlenfeld oder eine Checkbox) Wenn du jetzt oben rechts in der Liste auf "GameObject" gehst, kannst du danach "SetActive" auswählen. Es geht also darum, das gesamte GameObject an- oder auszuschalten. Dann erscheint unten rechts (wie) eine Checkbox, wo du dann ein Häkchen setzen kannst (an) oder es eben weglassen kannst (aus). Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 25. Oktober 2018 Autor Melden Share Geschrieben 25. Oktober 2018 ok - hab´s im großen und ganzen erfasst. Danke schön für das MiniTutorial! allerdings...ein letztes noch - im Screenshot sieht man, das die 3 Zustände gleichzeitig sichtbar sind. Der erste Button sollte nur den ersten Zustand zeigen... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 25. Oktober 2018 Autor Melden Share Geschrieben 25. Oktober 2018 P.S.: Im Prinzip funktionierts - habe es für das AndroidTablet ausgegeben und alle 3 Buttons zeigen ihre jeweiligen Zustände an. Sehr cool. Uncool: Beim Startscreen sehe ich alle 3 Zustände... Ok - habe eine Lösung, weiß aber nicht, ob die sauber ist: Ich habe in der Szene nur die Version I angeschaltet im Inspector, die anderen Aus. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. Oktober 2018 Melden Share Geschrieben 25. Oktober 2018 Im Inspektor ein GameObject auszuschalten macht nichts weiter, als SetActive(false), also genau dasselbe, was die Buttons auch machen. Ist daher genau richtig Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 25. Oktober 2018 Autor Melden Share Geschrieben 25. Oktober 2018 Ok - fein. Du hast mich ganz schön durchgehievt! Für den Anfang finde ich das extrem wertvoll - Merci, vielmals... P.S.: Gibts eine Site, wo man ein paar Tutorials durcharbeiten kann, damit man in die grundlegenden Features kommt? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. Oktober 2018 Melden Share Geschrieben 25. Oktober 2018 Naja, "eine" Seite gibt's nicht, sondern jede Menge. Die Ressourcen direkt von Unity habe ich immer als ganz gut angesehen, auch wenn die inzwischen meiner Meinung nach etwas konfus zusammengewürfelt sind: https://unity3d.com/de/learn Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 25. Oktober 2018 Autor Melden Share Geschrieben 25. Oktober 2018 Danke! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 25. Oktober 2018 Autor Melden Share Geschrieben 25. Oktober 2018 Oh Mann, jetzt funktionieren meine Buttons nicht mehr auf dem Tablet. Auch nicht in Unity. Dachte´ ich wäre durch. Hmmmm´...habe nochmals einen neuen Testbutton zum überprüfen angelegt, aber auch keine Reaktion bei Touch am Tablet....grmpfl... Und - auch cool...die Objektschatten sind zwar in Unity, aber auf dem Tablet nicht sichtbar... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. Oktober 2018 Melden Share Geschrieben 25. Oktober 2018 Klingt, als hättest du dein "Event System"-GameObject gelöscht oder deaktiviert. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 26. Oktober 2018 Autor Melden Share Geschrieben 26. Oktober 2018 Danke, stimmt, das kommt, wenn man zuviel herumfuchtelt und nicht mehr bei Jedem Ding weiß, wie Was wohin geraten ist. Ich hatte "aufgeräumt" und im Hinterkopf, dass du erwähnt hattest, das das an- und abschalten nicht die die EventSytem-Komponente bräuchte. Das ES-GO...hole ich mir da ein Neues rein, oder wird das implementiert beim aufrufen eines anderen Features? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 26. Oktober 2018 Autor Melden Share Geschrieben 26. Oktober 2018 Jetzt funktionierts wieder, nachdem ich einfach ein EventSystem erstellt habe. (...dankbar) Bleibt der Schatten...ich habe ja eine plane erstellt, die unsichtbar ist, und Schatten wirft (Dank deines Materialshaders, aus einem vorherigen Thread). Zum Test habe ich eine neue TestPlane erstellt, mit normalen Shader. Aber auch hier wird der Schatten in Unity zwar generiert, aber nicht auf dem Tablet. Woran könnte das liegen? Cheers, SB Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sugarbaby Geschrieben 26. Oktober 2018 Autor Melden Share Geschrieben 26. Oktober 2018 Bin in den SchattenQuality Einstellungen - da kommt Licht ins Dunkel, bzw. den Schatten...to be continued...mit happy End hoffentlich! P.S.: Hab´s hinbekommen - Schatten da! Puh....herzlichen Dank für die Unterstützung. 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.