Gebäude-Boden Integration Unity Hub Spieleprogrammieren

Sasch.ai

Newbie
Registriert
Okt. 2026
Beiträge
7
Hallo zusammen :)

verurteilt mich bitte nicht, aber ich als Laie im Programmieren habe vor 2 Monaten angefangen ein mobile Survival Game zu programmieren mit Hilfe von Claude Code, da ich diese Games immer gerne gespielt habe mich das Prinzip Pay2Win aber genervt hat. Deshalb ist mein Spiel deutlich deutlich weniger Pay2Win orientiert und kleinere Spieler werden auch häufiger belohnt. Es steckt schon viel Zeit und Arbeit drin obwohl die Hauptlast auf Claudes Schultern liegt.

Jetzt stehe ich seit 4 Wochen vor dem Problem meine Gebäude sowohl in der Base als auch auf der Weltkarte vernünftig zu integrieren und diesen Sticker effekt weg zu kriegen. Das selbe gilt auch für die Gameassets für Deko wie Bäume, Trümmerhaufen, Ruinen, Berge.
Ich habe wirklich viel probiert und auch schon die zehnte Fuhre an Gebäude Sprites durch. Sie sitzen mittlerweile perfekt auf dem Raster das hat auch lang gedauert, aber aktuell haben sie eine eingebackene Bodenplatte (die in der Base nur) in der selben farbe der siedlung mit einem transparenten Übergang. Und dennoch sieht es aus wie ein Sticker. Habt ihr irgendwelche Lösungsvorschläge damit es aussieht als würden die gebäude da auch wirklich hingehören? Bin sehr Dankebar für jeden Tipp.
1792958194775.png
LG
Sascha
 
Das ist ja wirklich merkwürdig.
Ich nehme an, Du meinst die perfekt sichtbare quadratische Linke um jedes Gebäude am Boden.

Eigentlich würde ich auch erwarten, dass ein Alpha-Verlauf am Boden des Gebäudes dafür sorgen würde, dass er smooth ins Terrain reinblendet.
Passt das denn mit dem Verlauf des Bodenelements unter dem Gebäude, wenn Du das Terrain ausblendest?
Macht der Shader da Faxen?
 
Ich würde tatsächlich weniger an den Gebäuden selbst arbeiten, sondern eher an der Integration in die Umgebung. Das Problem scheint mir vor allem die fest ins Sprite eingebaute Bodenplatte zu sein. Idealerweise würde ich Gebäude und Untergrund trennen und den Übergang über eine unregelmäßige Alphamaske oder einen Shader weich ausblenden (Wie mein Vorredner bereits erwähnte). Dazu noch dezente Kontaktschatten und eine einheitliche Beleuchtung. Was den Effekt zusätzlich verstärkt, ist die momentan noch sehr kahle und leere Spielwelt. Ein paar passende Bodentexturen, kleinere Steine, Pflanzen und andere Umgebungsdetails würden die Gebäude deutlich natürlicher einbetten. Ich denke, damit kommst du weiter als mit der zehnten Überarbeitung der Sprites. 🙂
 
Nabend,

Genau die quadratischen Linien am Boden sind das Problem.

Wichtiger Kontext: Das Projekt läuft komplett auf UI Toolkit (kein SpriteRenderer, keine Tilemaps, keine SortingLayers). Alles wird als Element-Baum in einem einzigen UIDocument gezeichnet.
Also:
  • Kein custom Shader möglich auf den Runtime-Meshes
  • Nur Alpha-Blending, kein Multiply/Overlay
  • Keine eigenen Materialien

Die Gebäude-Sprites haben einen gemalten Bodenteller (Erde/Beton) mit Alpha-Gradient an den Rändern. Unter den Sprites liegen mehrere Integrations-Layer (Grounding-Decals, Contact-AO, Wurfschatten) — die sind laut Code aktiv, aber im Spiel visuell kaum/nicht sichtbar, egal welche Alpha-Werte wir setzen.

Den Verlauf des Bodenelements mit ausgeblendetem Terrain habe ich ehrlich gesagt noch nicht isoliert
geprüft — guter Punkt, das wäre ein sinnvoller Diagnose-Schritt.
Die Frage ist ob UI Toolkit beim Rendern des Alpha-Gradienten etwas macht was wir nicht erwarten (z.B. premultiplied alpha vs. straight alpha, oder die Vertex-Farben werden anders verrechnet als gedacht).
Ich habe bereits diverse Gebäudesprites gehabt. Zu beginn war Bodenbiom komplett getrennt von den Gebäuden. Klappte nicht waren Sticker, dann hatten sie einen weichen Alpha verlauf. Klappte nicht. Dann haben sie die Bodenbiomplatten bekommen sodass Claude im Unity einfach den Boden drum herum daran anpasst. Klappte nicht. Jetzt versucht er mit Shadern und allem das zu fixen aber es wird von mal zu mal schlimmer.
 
sieht fast nach ao aus, kannste das mal abschalten?
 
ja so war es am anfang
1792965195073.png
Und es war ok aber gerade bei dem gebäude vorne war es mir einfach zu offensichtlich das das gebäude da nicht hingehört.Ab hier Ideen oder muss ich doch die Sprites wieder ändern? Bzw im Unity das Biom abschneiden lassen und transparent darstellen.
 
Hasse mich, weil das das letzte ist, was Du lesen möchtest, aber…
Wichtiger Kontext: Das Projekt läuft komplett auf UI Toolkit (kein SpriteRenderer, keine Tilemaps, keine SortingLayers).
…das klingt so derart falsch. Was hat Dich denn da hingeführt?
Ja, theoretisch kannst Du das ganze Ding quasi als Browser-Game sehen, das Du mit UiToolkit implementierst…
…aber Du operierst dann halt allergrößtenteils am Unity-Ökosystem vorbei.
Wenn‘s dann mal Richtung Animationen, Effekte und Zeugs geht, wird‘s echt eklig.

Da ich selbst mich bisher größtenteils um UiToolkit rumgedrückt hab, wegen persönlicher Aversion gegen Entwicklung im UXML web-style, bin ich da kein Experte… aber gut möglich, dass auch Deine Render-Probleme tatsächlich daher rühren.
 
Die Entscheidung kam nicht von mir — ich habe keinen Programmier-Hintergrund. Das Projekt wird mit KI-Unterstützung (Claude Code) gebaut und die hat von Anfang an alles in UI Toolkit aufgezogen.
Ich merke erst jetzt nach Monaten, dass das möglicherweise eine fundamentale Fehlentscheidung war, weil ich genau an den Grenzen stehe die du beschreibst: kein Multiply-Blending, keine eigenen Shader, keine vernünftigen Schatten.

Die Frage ist jetzt ob sich eine Migration auf SpriteRenderer/Tilemaps für die Spielwelt noch lohnt (UI Toolkit würde dann nur noch für HUD und Menüs bleiben) oder ob das den gleichen Aufwand
hätte wie von vorne anfangen. Also ich beseitze das 300€ Abo von Claude er kann also lange durcharbeiten die Frage ist nur ob das wohl das Problem löst.
 
@Sasch.ai Sollte ja nur ein paar Klicks benötigen bzw. ein paar Minuten dauern, rauszukriegen, ob normale SpriteRenderer in einer Szene das Problem hier nicht mehr haben.

Einfach kurz ein neues Projekt machen, die 2 Sprites in die Szene schmeißen und ggf. noch den Sorting-Layer einstellen.

Kleines Tutorial dazu, falls nötig:

P.S. Hast mich auf ne Idee gebracht und ich befass mich heute mal mit UI Toolkit.
Mein Unity Projekt wurde letzte Woche eingestellt und hab grad Leerlauf. 😅
 
Zuletzt bearbeitet:
Danke für den Tipp! Haben wir heute morgen gemacht — Branch erstellt, URP 2D eingerichtet, Prototyp-Szene mit SpriteRenderer + SpriteLit + 2D Lights + ShadowCaster2D. Alle drei Tests bestanden (Licht-Reaktion, Multiply-Blending, echter dynamischer Schatten). Schnittplan steht, Phase 0 startet heute.

Jetzt noch eine Frage zu den Sprites selbst:

1793008654074.png


Die Gebäude haben aktuell eine eingebackene Bodenplatte (Sandboden innerhalb und außerhalb der Mauern). Für die URP-Migration:
A) Boden KOMPLETT transparent — nur Gebäude, kein gemalter Boden, Alpha-Verlauf am Fundament. Terrain übernimmt alles.
B) Boden INNERHALB des Gebäudes behalten (Innenhof, Bereich zwischen Mauern), nur außerhalb der Grundfläche transparent. So macht es z.B. State of Survival — Innenhof gehört zum Sprite, Umgebung kommt vom Terrain.

Was meint ihr — A oder B?

Und gern geschehen für den Anreiz einer Idee @Katzenjoghurt :D
 
@Sasch.ai Das ist im Prinzip ne Art-Frage.

Stell Dir vor, Du wechselst irgendwann das Terrain? Soll sich der Boden dann automatisch mitändern?
Oder soll das immer Sand bleiben, weil... k.a. Soldaten da nun mal auf Sand trainieren?

Weiteres Szenario wäre Wetterwechsel... soll da im Winter automatisch Schnee im Hof liegen... oder gehen wir davon aus, dass die den Schnee geräumt haben? Aber dann würde man wohl eh das ganze Sprite ändern und auch bissl Schnee aufs Dach malen.

Sind eher solche (Art) Gedanken, die ich berücksichtigen würde, als technische.
 
Also mein Spiel hat zwei getrennte Ansichten:

Weltkarte: Siedlungen sind dort nur Marker also quasi ein anderer Gebäude was zu sehen ist als irgendeines der Siedlung, keine einzelnen Gebäude sichtbar. Der Boden kommt komplett vom Terrain (verschiedene Biome). Da ist transparenter Boden bei allen Objekten denk ich mal Pflicht? Auf der Weltkarte sind wichtige Gebäude auch geschlossene Gebäude ohne Innenhof so wie die Gebäude auf meinem Screenshot.

Siedlungsansicht: Fester Boden der sich nach dem Bau nicht mehr ändert. Die Spieler setzen ihre Gebäude frei auf einem Raster um. Die Idee war dann jetzt innerhalb der Gebäude (Innenhof, Hallenboden) bleibt der eigene Boden sichtbar, das gehört zum Gebäude selbst. Die Farbe des Siedlungsbodens wird so gewählt dass sie zu dem passt was man am meisten innerhalb der Gebäudemauern sieht — so gibt es keine harten Übergänge an den Kanten. Ist das sinnvoll so?


Ich muss sagen, dass ich mir über Sachen wie Wetterbedingungen noch keine Gedanken gemacht habe oder das die Sonne wandert und der Schatten dann auch.
 
Der Boden kommt komplett vom Terrain (verschiedene Biome). Da ist transparenter Boden bei allen Objekten denk ich mal Pflicht
Dann hast Du ja da Deine Antwort, dass der Boden frei bleiben sollte.
Wenn der denn immer dem Biom entsprechen soll.

Knifflig wird's dann aber nochmal mit den Übergängen... 🤔

Die Idee war dann jetzt innerhalb der Gebäude (Innenhof, Hallenboden) bleibt der eigene Boden sichtbar, das gehört zum Gebäude selbst. Die Farbe des Siedlungsbodens wird so gewählt dass sie zu dem passt was man am meisten innerhalb der Gebäudemauern sieht — so gibt es keine harten Übergänge an den Kanten. Ist das sinnvoll so?
Dann also doch fixer Boden für jedes Gebäude, der sich nicht ans Biom anpasst?
Macht auf jeden Fall weniger Kopfschmerzen.
Dann haste auch das Problem mit dem Übergang nicht.
Der fadet dann halt immer von Sand zu Sand/Schnee/Gras/Stein...
 
Zuletzt bearbeitet:
Ja ich denke ich wähle die Variante mit dem fixen Boden für die Gebäude in der Siedlung denn da ändert sich das Biom sowie so nicht. Das ganze läuft aktuell ich melde mich wenn ich das Ergebnis habe :) Für die kleineren Gebäude auf der Karte bin ich mir noch nicht sicher erstmal schauen was das ganze jetzt ergeben wird. Danke schon mal bis dahin!
 
  • Gefällt mir
Reaktionen: Katzenjoghurt
Zurück
Oben