Jump to content
Unity Insider Forum

Gravität mitten im Spiel ändern 2D C#


...

Recommended Posts

Die Gravität zu ändern wird nicht gehen, das Spiel hat genug Würde.

Die Gravitation jedoch kannst du mittels

Physics2D.gravity = new Vector2(x, y);

ändern.

 

http://docs.unity3d....2D-gravity.html

 

In dieser statischen Klasse lassen sich auch andere Einstellungen festsetzen, wie zum Beispiel die Grenze von Gravitationsbeschleunigung usw.

Den dazugehörigen Manager kannst du auch vom Inspector aus bearbeiten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na dann ändere einfach die Gravitation, wie Sargon dir gezeigt hat.

Und zwar nach jedem Knopfdruck, also wenn du Jump wieder auf true setzt. Dann brauchst du aber keine Force mehr addieren, denn er wird ja automatisch nach oben gezogen.

 

 

 

   Physics.2D.gravity= new Vector2(Physics2D.gravity.x,Physics2D.gravity.y * -1);

Link zu diesem Kommentar
Auf anderen Seiten teilen

Könnte sein, dass es gemeint ist, dass der Charakter alleine nur eine andere Anziehungskraft haben soll. Da kann man mal irgendwie selber dann addieren und sowas machen:

 

Mit konstanten Geschwindigkeit wäre das jetzt so.

rb2d.velocity = new Vector2 (1 * maxSpeed, -Physics2D.gravity.y);

Link zu diesem Kommentar
Auf anderen Seiten teilen

Alter, mach dir klar was die vorgeschlagene Lösung eigentlich tut. Dann solltest du auch selber wissen wie man nun die Gravitation ändert.

 

rb2d.velocity = new Vector2 (1 * maxSpeed, //x
	 -Physics2D.gravity.y); //y

 

So der erste Wert, wie Sascha dir bereits einmal erklärt hat, ist für x und der zweite für y. rb2d.velocity ist ein Attribut von deinem rigidbody, dieser wert gibt einfach an in welche Richtung sich dein Objekt bewegt. Und diese setzen wir mit rb2D.velocity = new Vector....

Also, was muss man wohl verändern damit man nun in eine andere richtung fliegt?

 

Zudem hat Sascha schon eine bessere Lösung vorgeschlagen:

 

rb2d.gravityScale *= -1;

 

Was das macht kann man auch nachsehen http://docs.unity3d....avityScale.html

 

Und bitte, nur weil du Anfänger bist wird hier keiner dein Spiel programmieren. Ein Forum ist dazu da um Hilfe bei einem Problem zu bekommen. Dein Problem war die Frage wie man die Gravitation ändert, das haben wir beantwortet. Aber ich programmier dir doch nicht ein komplettes Skript das dir automatisch die Gravitation wechselt.

Das soll nicht böse gemeint sein, aber du musst auch eigeninitative an den Tag legen, sonst wird das nichts mit dem Spiel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Fals man mal fragen darf, wieso hat Rigibody2D eigentlich ne gravityScale aber Rigidbody nicht? Oder übersehe ich da etwas?

Meine erste Annahme wäre: Weil sich das bei Box2D anbietet, bei PhysX eher nicht so.

Ich finde es allerdings auch nicht unsinnvoll. Der Rigidbody2D hat wesentlich vielfältigere Anwendungen in einer 2D-Welt als der Rigidbody in 3D. Direkt an diesem Wert rumzuspielen ist für 2D-Gameplay recht wichtig, bei 3D gefühlt weniger.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mir hilft sowieso keiner.

 

Dir wurde, wie ich finde, sehr gut geholfen..

Aber wenn du nicht Willens bist auch zu verstehen was dir vorgeschlagen wurde, dann bist du hier wohl falsch.

Du sollst ja Lernen dein eigenes Spiel schreiben können und dich nicht auf andere verlassen müssen, denn hier hat niemand Zeit und auch keine Lust für andere ganze Scripte zu schreiben..

 

Und das Thema bzw. die Lösungsvorschläge sind jetzt wirklich nicht so komplex, dass man das Gezeigte nicht selbstständig in sein Script integrieren kann, selbst wenn man noch am Anfang steht..

Offensichtlich hast du noch nicht mal die Basics verstanden oder überhaupt versucht zu Lernen und wenn ich mal mutmaßen darf, dann würde ich sagen, dass du das Script kopiert hast und keine Ahnung hast was die Zeilen eigentlich machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

Gast
Dieses Thema wurde für weitere Antworten geschlossen.
×
×
  • Neu erstellen...