Jump to content
Unity Insider Forum
Footloose

Panzerung für ein Raumschiff umsetzen?

Recommended Posts

Guten Tag,

 

ich bin gerade dabei das Design-Dokument für mein erstes Spiel zu erstellen.

Bei einer Sache bin ich mir jedoch etwas unsicher was die Umsetzung angeht, weshalb ich eure Meinung einholen möchte.

 

Und zwar möchte ich dass ein Raumschiff Panzerung hat, die eine bestimmte Dicke aufweist.

Wird das Raumschiff also von einem Projektil (Prefab) getroffen, soll die Panzerungsdicke und

das Material bestimmten, ob das Projektil schaden macht oder nicht.

 

Das auszurechnen ist ja nicht weiter schwer. Nur woher nehme ich die Panzerungswerte?

Ein Schiff soll nicht nur einen einfachen Panzerungswert haben, sondern an verschiedenen Bereichen auch verschieden dicke Panzerung haben.

 

Ich dachte mir das so, dass ich jeder Fläche des Low-Poly-Modells des Raumschiffes einen eigenen

Panzerungswert zuweise, nur ob das so korrekt ist bzw. wie ich das zuweise weiß ich nicht.

 

Was haltet ihr davon? Habt ihr Ideen?

Wäre super :)

 

LG Tobi ;)

Share this post


Link to post
Share on other sites

Mein Vorschlag wäre ein spezieller Shader, dem du eine zusätzliche Textur zuweist, die zwar nicht gerendert wird, aber die Stärke der Panzerung über Farbwerte aufnimmt. Zudem kann man bei einer Collision bzw. Raycast die UV-Koordinaten der Textur auslesen und damit den Farbwert der Panzerung bestimmen.

 

https://forum.unity3...ollision.12720/

https://docs.unity3d...xtureCoord.html

  • Like 1

Share this post


Link to post
Share on other sites

Du kannst doch je nach welche Panzerung gewählt wurde die Textur einfach ändern.

 

Wenn auf das Schiff geschossen wird prüfst du ob und wo es getroffen wurde dann kannst du auch bestimmen ob es wie viel Schaden das Projektil gemacht hat. Nen Extra Shader brauchst du dafür meiner Meinung nach nicht.

Share this post


Link to post
Share on other sites

Der muss ja aber irgendwie wissen, wo wie viel Panzerung ist. Die soll ja nicht überall am Schiff gleich sein.

Daher muss ich schon eine Textur mitgeben wo das überprüft wird denke ich.

Ob ich dafür einen extra Shader brauche weiß ich nicht, meinte Zer0cool halt.

 

LG ;)

Share this post


Link to post
Share on other sites

Deswegen sollst ja ja prüfen welches Teil getroffen wurde.

 

Das nun vom Material abhängig zu machen würd ich nicht machen die Panzerung ist ja normalerweise nicht von der Farbe abhängig. Die Frontscheibe ist ja vielleicht unterschiedlich dick wie die heckscheibe und das mit dem selben Material.

Share this post


Link to post
Share on other sites

Der Shader hält nur über eine Extratextur die Panzerungsdicke und die Farbe bestimmt dabei nicht die Farbe der Oberfläche, sondern die Panzerungsdicke je Pixel pro Textur und ja man braucht nicht unbedingt einen Shader, wenn man es nicht "hochauflösend" braucht (d.h. wenn man nicht z.b. innerhalb einer Textur unterschiedliche Panzerungsstärken benötigt. Wenn man nur eine Panzerungsdicke pro Oberfläche braucht, so kann man diese z.b. auch in einem Dictionary ablegen und hier jeder Oberfläche eine Panzerung zuordnen. Der Ansatz mit dem Shader ein eleganter Weg, wenn man sowieso Texturen für ein Raumschiff erstellt und parallel dabei gleich Texturen für die Panzerung mit erstellt. Zusätzlich könnte man über diese "Panzertexturen" auch noch Schildeffekte über den Shader darstellen, wobei der Shader dann z.b. den Zustand des Schildes über die eigentliche Textur visuell darstellt (hier ist aber ein etwas komplexerer Shader erforderlich)

Share this post


Link to post
Share on other sites

Also ich dachte mir das so dass jede Fläche im Low-Poly-Modell eine Zuweisung der Panzerung bekommen soll.

Dies soll der Spieler später auch verändert werden können, dass heißt der Spieler muss das sehen und erkennen können, wenn

er sich die Panzerungsdicke anzeigen lässt.

Share this post


Link to post
Share on other sites

Erstmal muss ich ja jemanden finden der mir die Raumschiffe macht.

Also Mesh, UV Map und Texturen usw.

 

Ist ja nur erstmal für das Design Dokument ;)

Doch danke, ich werde mich dann ggf. melden :)

 

LG Tobi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×