Triky313 Geschrieben 30. September 2017 Melden Share Geschrieben 30. September 2017 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? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Helishcoffe Geschrieben 30. September 2017 Melden Share Geschrieben 30. September 2017 Naja du musst halt wissen wie breit deine Prefabs genau sind in Weltkoordinaten. Dann addierst du die Breite einfach immer zu deiner x-Koordinate dazu bei dem nächsten Objekt. So ist es dann genau da dran. Oder verstehe ich jetzt was falsch? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Triky313 Geschrieben 30. September 2017 Autor Melden Share Geschrieben 30. September 2017 Das sehe ich auch so. Leider gibt es da noch Pivot oder Rect Transform.. ich bekomme nie die Werte, die ich brauche. Schon gar nicht die Position des Objektes welches ich brauche. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 30. September 2017 Melden Share Geschrieben 30. September 2017 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 More sharing options...
Triky313 Geschrieben 30. September 2017 Autor Melden Share Geschrieben 30. September 2017 Ja genau, aber verwendet man nicht Canvas auch für GameObjekte? Oder wird dafür normalerweise etwas anderes verwendet? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 30. September 2017 Melden Share Geschrieben 30. September 2017 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 More sharing options...
Triky313 Geschrieben 30. September 2017 Autor Melden Share Geschrieben 30. September 2017 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... Okay ich probiere das mal alles aus. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 30. September 2017 Melden Share Geschrieben 30. September 2017 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 More sharing options...
Triky313 Geschrieben 30. September 2017 Autor Melden Share Geschrieben 30. September 2017 Jap das klappt super. Ich muss das jetzt nur noch über den Code zum laufen bekommen. Das sollte aber auch machbar sein. Danke. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 30. September 2017 Melden Share Geschrieben 30. September 2017 Ja, da gibt es ja gute Tutorials für: Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Triky313 Geschrieben 30. September 2017 Autor Melden Share Geschrieben 30. September 2017 Danke für das Video. 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.