Jump to content
Unity Insider Forum

Mehrere Prefabs GameObject Ebenen nebeneinander erstellen


Triky313

Recommended Posts

Hallo Leute,

ich baue gerade an einem Sidescroller.

Ich habe mehrere Prefabs, welche Teile einer Spielwelt darstellen. Im Prinzip gerade einfach nur Grundboden, welche durch Zufall nebeneinander gesetzt werden sollen.

Ich habe mehrere Prefabs wie grasfield_mid_01 oder sandfield_mid_01 und nun muss ich irgendwie berechnen können, wo das erste Element ist und wie weit das nächste nach rechts muss, damit es genau daneben ist.

Habe mal ein Bild mit einer Ebene hinzugefügt. 

Hat da jemand Tipps?

Unbenannt.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn Pivots und Rect Transform and deinen Prefabs hängen, dann sind es Unity UI Objekte und damit sitzen diese Objekte immer relativ zu einem Canvas. Wenn ich ich richtig beurteile, dann solltest du deine UI Objekte in Sprites umwandeln. Diese kannst du dann über die Positionen der GameObjekte normal Verschieben und Positionieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein Canvas wird als Container für UI Elemente verwendet (beispielsweise für ein Spielmenü oder ein HUD). Und da in Unity alles an GameObjekten hängt, so hängt auch ein Canvas an einem, aber die Position des GameObjektes spielt dabei nur eine Rolle, wenn du den Mode des Canvas auf "World Space" setzt.
Normalerweise wird ein Canvas aber im "Screenspace" betrieben und damit wird das Canvas als Overlay über die gesamte Spielszene gelegt.

Bei einem Sidescroller verwendet man üblicherweise Sprites. Ein Sprite in Unity is dabei ein GameObjekt mit einer SpriteRenderer-Componente:
https://docs.unity3d.com/Manual/class-SpriteRenderer.html

Sprite wird in Unity auch die 2D-Textur genannt, die der SpriteRenderer dann darstellt. Ein GameObjekt mit einem SpriteRenderer kannst du dann wie gewohnt in Unity Verschieben und Positionieren (meist wird dabei die 2D-Ansicht verwendet).

Man kann zwar theoretisch auch ein 2D-Spiel komplett in einem Canvas ablaufen lassen, aber davon würde ich abraten und dafür ist es auch nicht gedacht. Ausnahme wäre vielleicht ein sehr UI-lastiges Spiel wie beispielsweise ein Kartenspiel etc.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay,

ich habe Sprites und SpriteRenderer. Das ganze ist aber im Canvas.

Wenn das ohne geht, würde es das ganze natürlich erleichtern. Ich dachte bislang aber immer dass dies nicht ohne Canvas möglich ist. Ich probiere das mal eben aus. 

 

Stimmt, es geht auch ohne. Was habe ich da denn gemacht... :lol:

Okay ich probiere das mal alles aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Canvas brauchst du nicht. Es sei denn du möchtest beispielsweise ein Sprite in einer UI darstellen (ein Beispiel: UI Button).

Wenn du in Unity bereits eine Textur beim Import als Sprite(-Textur) eingestellt hast (im Projektfolder), dann kannst du dein Sprite-Asset einfach in deine Szene ziehen und Unity "kümmert" sich um den Rest. Es erzeugt ein GO mit einem SpriteRenderer. Die GO's mit SpriteRenderer kannst du nun frei in der Szene verschieben, dahin wo du sie haben möchtest.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...