Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Entweder ich stehe echt auf richtig übel auf 'nem Schlauch oder bei Unity läuft was schief, aber meistens ist es ja der Bediener der den Fehler macht. Ich hoffe echt mir kann da jemand von euch klugen Köpfen helfen.
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 |
bool FindGameObjectAt(Vector2 pos) { if (Physics2D.OverlapCircle (pos, 1f) == null) return false; else return true; } |
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
if (!FindGameObjectAt (new Vector2 (playerCam.transform.position.x + 50f, playerCam.transform.position.y))) { createPos.x = Mathf.RoundToInt((playerCam.transform.position.x + 50f)/10); //rundet auf 10,20,30,40 usw auf (Tileabstand) createPos.x = createPos.x * 10; createPos.y = Mathf.RoundToInt((playerCam.transform.position.y / 10)); createPos.y = createPos.y * 10; GameObject sprite = (GameObject)Instantiate(Empty, new Vector3(createPos.x, createPos.y), Quaternion.identity); //Erstellt ein leeres sprite an der richtigen Position sprite.GetComponent<SpriteRenderer>().sprite = Sprite.Create(CalcNoise(xOrg*(createPos.x/10), yOrg*(createPos.y/10)), new Rect (0, 0, pixWidth, pixHeight), new Vector2 (0, 0)); //Gib dem Sprite den TerrainSprite der mit PerlinNoise generiert wurde } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Koschi« (27.05.2015, 07:19)
Ich hab mal folgendes Bild gemalt um das ganze zu verdeutlichen.
Die +50 liegen ausserhalb der Kamera weil der Spieler nicht sehen soll wie Terrain nachgeladen wird. Ich checke also von der Kameraposition aus 50 Einheiten in meinem Fall entspricht das 5 Tiles ob dort schon ein Terrain vorhanden ist, wenn nicht erstelle ich dort eins ich runde dann auf volle zehner weil das der Tileabstand ist jedes Sprite ist bei 0,0 0,10 20,30 und so weiter ich hoffe man verstehts.
Während ich überlegt hab ist mir ne Idee gekommen wie ich das ganze anders realisieren könnte ich könnte eine Dictionary<Vector2, GameObject> erstellen und darin alle Tiles speichern und dann einfach abfragen ob bei 0,0 0,10 usw. schon ein Tile vorhanden ist?
Wenn ich mich nach links bewege dann verringert sich die Kameraposition in der X-Achse z.b. von 100 auf 94.5633 und dann check ich ob bei 94.5633 + 50 Terrain vorhanden ist wenn ja soll nichts passieren wenn nein erstell neues.
Werbeanzeige