-
Posts
553 -
Joined
-
Last visited
-
Days Won
24
chrische5 last won the day on August 22
chrische5 had the most liked content!
Profile Information
-
Gender
Male
-
Location
Leipzig
-
Interests
Running! Reading! Playing!
Recent Profile Visitors
2,011 profile views
chrische5's Achievements

Advanced Member (3/3)
62
Reputation
-
Prefab mit Scriptable object als Datencontainer
chrische5 replied to chrische5's topic in Allgemeine Hilfe
war ein böser Denkfehler. Sorry Christoph- 1 reply
-
- 1
-
-
Hallo Ich bin gerade auf folgendes Problem gestoßen und weiß mir nicht recht zu helfen: Ich habe ein Prefab und in diesem wird ein So als Satencontainer genutzt. Im Spiel werden nun mehrere dieser Prefabs instantiiert. Nun ist mir aufgefallen, dass dabei aber nicht auch der Datencontainer neu erstellt wird, sondern sich alle Prefabs dies eine Datenquelle teilen. Das ist in meinem Fall doof, weil ich damit nur ein Gegner treffen muss, um bei allen Schaden anzurichten. Wie kann ich das umgehen? Christoph
-
Hallo Das werde ich mir mal anschauen. Danke. Christoph
-
Hallo Zunächst möchte ich um Entschuldigung bitten, dass ich mich nur so sporadisch melde. Leider habe ich derzeit viel zu tun und komme nur punktuell zum Programmieren. Zum Problem: Ich bin wirklich verwirrt. Der Wert von _directionRayLength bleibt konstant (ich lasse es mir in der Console ausgeben). Eine Linie wird nur von diesem Script gemalt und das script liegt nur auf einem GameObject. Christoph
-
Hallo So sieht mein Code aus: Vector3 direction = mousePosition - transform.position; direction = direction.normalized * _directionRayLength.value; Vector3 target = transform.position + direction; Draw.ingame.Line(transform.position, target, _directionRayColor.value); Habe ich da einen dicken Denkfehler? Christoph
-
Hallo, ich bin mal ehrlich: Ich bekomme es nicht hin. Die Strecke ist immer noch abhängig von der Entfernung der Maus zum Spieler. Christoph
-
Hallo Danke für eure Antworten. So richtig klappt das nicht. Die Länge der Linie ist immer noch nicht konstant, sondern abhängig von der Entfernung der Maus vom Ursprung. Das soll ja eben nicht so sein Mein Code: if (Input.GetMouseButton(0) && _isDirectionRay.value && !_isGamePaused.value) { var mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); using (Draw.ingame.WithLineWidth(_directionRayWidth.value)) { Vector3 direction = mousePosition - transform.position; Vector3 target = transform.position + Mathf.Min(_directionRayLength.value, direction.magnitude) * direction.normalized; Draw.ingame.Line(transform.position, target, _directionRayColor.value); } } Ich hätte es gern, dass die Gerade immer gleich lang ist. Egal, wo die Maus sich befindet. Also auch wenn diese "innerhalb" der eigentlichen Länge ist. Christop
-
Hallo, Irgendwie habe ich einen Knoten im Kopf, den ich nicht gelöst bekomme. Derzeit zeichne ich eine Linie von einem Punkt zum Mauszeiger, wenn die linke Maustaste gedrückt ist. Nun möchte ich diese Linie aber nicht immer bis zum Mauszeiger, sondern nur in einer bestimmten Länge zeichnen. Wie kann ich die Koordinaten dieses Punktes berechnen? Zusammenfassung: ich habe Zwei Punkte und möchte eine Strecke mit einer bestimmten Länge von Punkt a zum errechneten Punkt zeichnen. Versteht man, was ich meine? Wenn nicht, mache ich eine kleine Zeichnung. Danke Christoph
-
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