Unity Objekte zufällig auf Terrain spawnen?
Ich habe in einem Unity Projekt einen Terrain mit Bergen usw. erstellt und will auf der Map jetzt Kisten an zufälligen Positionen spawnen lassen. Wie kann ich das machen? Denn wenn ich für die X, Y und Z Koordinate einen Random.Range wert nehme, dann spawnen die Kasten halt in den Bergen... Wie kann ich das verhindern? Danke schonmal!
2 Antworten
Lass nicht alle Koordinaten zufällig bestimmen, sondern nur die X und Y Koordinate.
Für die Z Position nimmst Du eine Höhe, die über allen anderen Objekten liegt. Dann lässt Du das Objekt dort spawnen und herunterfallen.
Oder Du nimmst einen anderen Ansatz und lässt den Spawn so, wie er jetzt ist und fügst den Kisten zusätzlich einen Trigger hinzu.
Immer wenn die Kiste mit irgendeinem Objekt kollidiert (also der Trigger ausgelöst wird), setzt Du die Kiste um einen bestimmten Wert nach Oben.
Spawnt eine Kiste im Boden, einem Stein oder Berg, wird sie so lange nach Oben gesetzt, bis sie auf dem Grund steht.
Alternativ kannst Du auch irgendwas machen, um die Höhe des Grundes der (vorher zufällig bestimmten) X und Y Position zu bestimmen und setzt die Kiste entsprechend ein Stück darüber.
Hallo.
Der einfachste Weg dürfte wohl darin liegen, den random Wert für die Z-Achse zu beschränken. 😉 Also abzufragen, ob die X/Y Koordinate auf einem Berg liegt.
Viel Erfolg.
Danke, aber das geht leider nicht, da die Kisten einen Collider haben und deswegen nicht durch den Terrain kommen...