Jump to content
Unity Insider Forum

Reichweite einer Waffe bestimmen


Ismoh

Recommended Posts

Hallo zusammen,

 

gleich vorweg: Habe mein Unity Projekt gerade nicht zur Hand.

 

Ich habe zwei unterschiedliche Waffen:

Sturmgewehr und Pistole.

Jeder dieser Waffen hat seine eigene Reichweite in Zahlen: zB 150 und 50 (Meter).

 

Nun habe ich in meinem Projekt PixelPerUnit = 1, somit ist ein Pixel genau so breit und hoch wie Vector2(0,0) bis Vector2(1,1).

 

Ein Raster in Unity soll einen Meter symbolisieren, wenn ich das richtig in Erinnerung habe.

 

Ein Raster im Unity Editor (ich kann die genaue Zahl gerade nicht nachschauen) ist angenommen genau 100 Pixel breit und hoch.

 

Kann mir Jemand bezüglich definieren der Flugkurve auf die Sprünge helfen?

 

Die Patrone des Sturmgewehrs soll 150m fliegen, also 150 Raster a 100 Pixel. Sind also 15000 Pixel.

Eine Patrone ist einen Pixel groß.

 

Einige werden sicher sagen: Mach es nach Gefühl. Klar, gern aber wie?

 

Die Patrone hat einen Rigidbody2D und durch die Masse und GravityScale kann ich bestimmen wann diese den Boden berührt.

 

Mir fehlt leider schon der Ansatz..

Ich muss ja irgendwie die Reichweite (150) in AddForce berücksichtigen. Einfach Vector2.left * reichweite? Wird vermutlich etwas wenig sein..

 

Würde das gerne erst verstehen, bevor ich sinnlos nach Gefühl irgendwelche Werte reinpupse.

 

Würde mich über jegliche Anregung freuen.

 

Gruß !

Link zu diesem Kommentar
Auf anderen Seiten teilen

....mmmmh vielleicht hilft dir das :unsure: . http://forum.unity-c...__fromsearch__1

LG

Ricky-W

mhh. geht so :D

Ich möchte gerne die Kraft ausrechnen, also: F = m * a [Kraft = Masse * Beschleunigung], wobei die Beschleunigung eine unbekannte ist.

 

Ich habe lediglich zwei Werte: Masse und Strecke bzw Reichweite.

 

s = 1/2 a*t² => a = 2s/t²

 

Da gravityScale auf 50 steht, damit die Patrone nicht wie eine Feder runterfällt, sobald diese irgendetwas berührt, muss ich diese "Kraft" auf die AddForce-Kraft addieren - vermute ich stark, sonst fällt die Patrone nach dem Schuss wie ein Backstein auf den Boden.

 

Nun nehme ich einfach mal folgende Vermutung an:

a = 2s/t² * (gravityScale * physics.gravity)

 

somit ergbit sich:

 

rb2d.AddForce(m*a) ->

F = m * a

F = m * 2s/t² * (gravityScale * physics.gravity)

F = 0,01 * 2*250 / ?² * (50 * 9,81)

F = 5 / ?² * 490,5

 

Was ist in meinem Fall t ? Die Zeit die für die 250m gebraucht wurde. Nur weiß ich die nicht.

Ich nehme an dass die Kugel für 250m 0,5 Sekunden braucht:

 

F = 5 / 0,5² * 490,5

F = 20 * 490,5

F = 9810

 

Ich glaube kaum, dass 9810 ausreicht, da ich vorher 50000 in AddForce stehen hatte.

 

Ich werds einfach mal testen.

 

 

 

//EDIT:

Das passt noch gar nicht.

Ich habe nun die Anzahl der Pixel eines Charakters zählen lassen: 77 Pixel hoch - Warum das? Ich benötige irgendein halbwegs sinnvolles Verhältnis zwischen 250 als Zahl zu der inGame-Reichweite.

Ich habe nun definiert, dass ein Pixel 2,25cm groß ist, somit ist der Charakter 173,25cm groß.

Klingt erstmal gut.

 

Werde mir das Thema später nochmal anschauen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...