-
Posts
545 -
Joined
-
Last visited
-
Days Won
23
Content Type
Profiles
Forums
Calendar
Blogs
Everything posted by chrische5
-
Unity-2D-Umgebung/Charakter erstellen und weitere Fragen
chrische5 replied to Nope-Ay's topic in Allgemeine Hilfe
Hallo Affinity Photo ist auch eine Option, wenn man auf macOs unterwegs ist. Christoph -
Hallo Hast du dem UI-Image auch das Sprite gegeben? Christoph
-
Hallo @malzbie Du hattest Recht. Ich habe nun ein Delay von 0.1 Sec zwischen Destroy und Neuladen eingebaut und es funktioniert! Absolut super. Danke! Christoph
-
Hallo EndPoint hat nix dergleichen und SpawnPoint ist nicht einmal ein script. Christoph
-
Hallo Ich hänge seit Tagen über einem komischen Problem. Habe mittlerweile einen totalen Knoten im Kopf. Eventuell sieht ja jemand von euch, was hier schief läuft. In meiner Szene liegt ein Ball. Un die Klasse LevelLoader ist dafür zuständig, Level zu laden. Diese sind einfache Tiled-Karten. Aus Testzwecken habe ich drei Karten erstellt und diese kann ich genau so laden, wie ich es mir wünsche. Dazu nutze ich folgende Funktion: public void LoadLevel(int levelIndex) { if (_currentLevel) { Destroy(_currentLevel); _currentLevel = null; } if (_currentEndPoint) { Destroy(_currentEndPoint); _currentEndPoint = null; } _ball.Stop(); _currentLevel = Instantiate(_levels[levelIndex]); var spawnPoint = GameObject.Find("SpawnPoint"); if (spawnPoint == null) { Log.WriteDebug("cant find spawn point", name); } else { _ball.transform.Translate(spawnPoint.transform.position); } var polygonCollider2D= _currentLevel.GetComponentInChildren<PolygonCollider2D>(); if (polygonCollider2D) { polygonCollider2D.gameObject.AddComponent<LevelBorder>(); } else { Log.WriteDebug("cant find polygon collider on current level", name); } var endPointFromTiled = GameObject.Find("EndPoint"); if (endPointFromTiled == null) { Log.WriteDebug("cant find end point", name); } else { _currentEndPoint = Instantiate(_endPoint); _currentEndPoint.transform.position = endPointFromTiled.transform.position; } } Wie bereits geschrieben, funktioniert das wunderbar. Wenn ich nun aber aus dem Spiel heraus ein neues Level laden möchte (weil der Spieler den Endpunkt erreicht hat), werden SpwanPoint und EndPoint falsch gesetzt (bzw. gar nicht neu gesetzt). Das Laden des nächsten Levels ist über folgende Funktion gelöst: public void StartNextLevel() { _currentLevelIndex++; if (_currentLevelIndex < _levels.Count) { LoadLevel(_currentLevelIndex); } } Ich habe absolut null Ahung, warum beim Wechsel des Levels der Ball nicht am SpawnPoint liegt und warum auch der EndPoint nicht neu gesetzt wird. Hat jemand von euch eine Idee? Welche Informationen brauch ihr noch von mir? Danke Christoph
-
Hallo. Nein, das ist klar. Ich meinte den Namen der Variable, den @gombolo nutze. Christoph
-
Hallo Da können wir uns streiten. txt als Präfix finde ich komplett unnötig und schrecklich. Wenn du zum Debug kommst, dann mach doch mal: Debug.Log(beschreibung.text); beschreibung.text = "Lala"; Debug.Log(beschreibung.text); Oder nutze Breakpoints und hangele dich durch den Code. Christoph
-
Hallo Ich verstehe nicht, was du machen willst und was du bisher versucht hast. Die Funktion Entscheidung wird in deinem Code nicht aufgerufen. Btw. sind Screenshots nicht so gut. Füge den Code doch einfach ein. Dafür gibt es den <> Button hier im Forum. Es reicht auch, wenn du beschreibung.text = Text schreibst. Die Benennung deiner Variablen ist auch inkonsistent, was es schwerer macht, den Code zu lesen. Christoph
-
Abhängigkeiten zwischen Gameobjects sauber lösen
chrische5 replied to Damon93's topic in Allgemeine Hilfe
Ja, ich habe zu schnell geschrieben. Sorry. Christoph -
Abhängigkeiten zwischen Gameobjects sauber lösen
chrische5 replied to Damon93's topic in Allgemeine Hilfe
Hallo Nur wenn es eine Repräsentation in der Spielwelt gibt, brauchst du auch GO. Nimm doch einfach Instanzen einer Klasse und speichere diese in einer List<Worker> und gut ist. Christoph EDIT:Böse Wortauslassung korrigiert. Danke @Sascha -
Hallo Eine echter Klassiker. Und hier die Anleitung dazu: https://forum.unity.com/threads/how-to-fix-a-nullreferenceexception-error.1230297/ Christoph
-
Abhängigkeiten zwischen Gameobjects sauber lösen
chrische5 replied to Damon93's topic in Allgemeine Hilfe
Hallo Also entweder haben die Angestellten ja gespeichert, bei welchem Unternehmen sie sind oder die Unternehmen haben gespeichert, wer bei Ihnen arbeitet. Beim zweiten Fall kann das betroffene Unternehmen ja einfach seine Angestellte informieren und bei denen eine entsprechende Funktion aufrufen. Wenn die Angestellten sich ihr Unternehmen gemerkt haben, dann sende doch den Event, dass ein Unternehmen Lohnkürzungen vornimmt und entweder gibst du dem Event das Unternehmen als Parameter mit und iterierst dann durch alle Angestellten und schaust, ob deren Unternehmen mit dem des Events übereinstimmt. Wenn dies der Fall ist, rufst die Lohnkürzungsfunktion auf. Du kannst auch den Event ohne Parameter feuern und dabei eine globale Variable (kann natürlich auch So sein) setzen, in welchem das entsprechende Unternehmen hinterlegt wird. So mache ich das meist. Christoph -
Hardware für Spiele Entwicklung RTX 4080 oder 4090
chrische5 replied to wifi96's topic in Spieleentwicklung generell
Hallo Ich habe ein MacBook Pro mit dem M1 Chip und bin sehr zufrieden damit. Christoph -
Hallo Du kannst ja die Farbe eines Buttons ändern, oder? Dein Problem scheint also zu sein, die Farbe eines anderen Buttons zu ändern. Du musst also irgendwie auf diesen zugreifen. Dazu gibt es einige Möglichkeiten. Ich würde es so machen: [SerializeField] private Button _rightAnwserButton; Das kommt in das Script, welches an dem Button mit der falschen Antwort hängt. Dann kannst du im Inspector den Button mit der richtigen Antwort übergeben und dessen Farbe ändern. Christoph
-
Hallo Wenn der falsche Button geklicjt wird, wird dieser doch auf ROT gesetzt. In gleichen Ritt kannst du doch den anderen Button auf GRÜN setzen. Da bleibt dann nur noch die Frage, wie du zu dem anderen Button kommst. Du könntest zum Beispiel im Inspector jeden Button den Button mit der richtigen Antwort zuweisen und dann diesen dann GRÜN setzen. Christoph
-
Hallo Ich habe mir das Video nciht angeschaut! Vielleicht zeigst du mal, was du bisher probiert hast und dann werden wir sehen. Grundsätzlich ist das kein problem. Christoph
-
Hallo Zunächst müsste deine Variable dann auch vom Typ TextMeshProUGUI sein. Dann kannst du mittels .text = "test" den Text setzen. public TextMeshProUGUI testTextField; private void Start() { testTextField.text = "Hallo"; } Btw: Im Update würde ich das nicht machen, weil es dann jeden Frame gesetzt wird. Mach es doch nur, wenn der Wert sich ändert. Christoph
-
Hallo Kannst du den entsprechenden Code nicht hier in Tags veröffentlichen. Eine Datei zu laden, ist immer ganz schön viel Aufwand. Christoph
-
Hallo Wo zerstörst du denn Objekte? Warum nimmst du nicht einfach eine globale Variable und zählst diese dann entsprechend hoch? Christoph
-
Hallo Schau dir mal das hier an: https://assetstore.unity.com/?q=localization&orderBy=1 Das sind auch kostenlose assets dabei und wenn du es selber schreiben willst, kannst du die Begriffe dort für google verwenden. Ich hatte mir selber was geschrieben und vorher 12Localization genutzt (und war damit eigentlich glücklich) Christoph
-
Objekte folgen, frei einstellen, über x- & y-Achse
chrische5 replied to Daniel0493's topic in Scripting
Hallo Was ist denn deine konkrete Frage? Christoph -
Hallo Für verschiedene Sprachen nimmt man in der Regel ein Lokalisierungstool und verwendet nicht verschiedene Buttons. Das wird das total unübersichtlich und unintuitiv. Christoph
-
Toggle zwischen maximize und und kleiner im GameView
chrische5 replied to chrische5's topic in Unity Benutzeroberfläche
Hallo Danke. Hat wunderbar geklappt. Christoph