Jump to content
Unity Insider Forum
SyntaxTalkstoMe

[gelöst]Ein paar kleinere Fragen

Recommended Posts

huhu,

habe ein paar kleinere Fragen:

 

1. Wenn ich im Play Modus bin, dann hab ich ab und an kleine Mikroruckler. Diese sind auch in der Scene während Play läuft, zu sehen. Die Ruckler kommen vor allen, wenn der Charakter springt. Seltsamerweise, wenn ich das Spiel gebuilded habe, ist von den Rucklern nix mehr zu sehen. Woran liegt das? Greift er da etwa auf mehr Ressourcen zu?

Ich bin mir fast sicher, dass das was mit der Kamera zu tun hat, die dem Player folgt. Ich hatte das Kamerafollow in LateUpdate, hatte es dann nach Update. Leider kein Unterschied. Hab es auch mit Vector3. Lerp und Vector3.Smothness probiert. Leider gab es da ebenfalls keine Unterschiede.

2. Wenn ich mit meinen Charakter über eine Erhebung laufen möchte, wird er langsamer, bis er dann stoppt. Ich muss dazu sagen, dass jedes relevante Groundtile einen eigenen Boxcollider hat. Ich habe gelesen, dass das wohl was mit der gravity Scale zu tun hat. Ich habe mehre Lösungswege versucht. Einige hab ich mir auch selbst ausgedacht. Aber leider hat nur eine Möglichkeit, einen Teilerfolg gebracht. Und zwar:

                                     - EdgeCollider:  ich habe auf einen normalen Groundtile ein Edgecollider draufgeschmissen und diesen einfach über die Erhebung verlängert. Das Ergebnis: Er lief ohne zu                                                        stoppen drüber. Allerdings langsamer.

                                     - Dieses Script.  Leider hat es überhaupt keine Wirkung gezeigt. Die Codezeilen stellen eine Erweiterung im Movecontroller dar.

                                         

if (Grounded() && !jump && newVel.x < speed)
        {

            rb2d.gravityScale = 0;
            rb2d.velocity = newVel;

            if (jump)
            {
                rb2d.gravityScale = 10;
            }
        }

                       

                                   - Ich hatte gelesen, dass wenn man dem Charakter irgendein Material gibt, dann ist der Effekt verschwunden. Leider hatte das ebenfalls überhaupt keine Auswirkung.

 

Der BodyTyp des Charakters ist übrigends Dynamic.           

Ich habe viel gegoogelt und das war alles was ich dazu gefunden habe. Die meisten Ergebnisse handelten davon, dass die Leute Probleme haben wenn ein Objekt bergab läuft. :D

 

3. Wo wir gerade bei dem Thema Collider sind. Es gibt da ja verschiedene Wege und sind auch Situationsabhängig. Aber in einem Sidescroller, welchen Collider für das Terrain würdet ihr da nehmen?

Macht es Sinn, wie in dem Test oben beschrieben, nur einem Groundtile einen Edgecollider zu geben und diesen dann quasi so weit aufziehen, soweit eben die Spielfläche geht?

Gruß

Share this post


Link to post
Share on other sites
vor 11 Stunden schrieb SyntaxTalkstoMe:

1. Wenn ich im Play Modus bin, dann hab ich ab und an kleine Mikroruckler. Diese sind auch in der Scene während Play läuft, zu sehen. Die Ruckler kommen vor allen, wenn der Charakter springt. Seltsamerweise, wenn ich das Spiel gebuilded habe, ist von den Rucklern nix mehr zu sehen. Woran liegt das? Greift er da etwa auf mehr Ressourcen zu?

Ich bin mir fast sicher, dass das was mit der Kamera zu tun hat, die dem Player folgt. Ich hatte das Kamerafollow in LateUpdate, hatte es dann nach Update. Leider kein Unterschied. Hab es auch mit Vector3. Lerp und Vector3.Smothness probiert. Leider gab es da ebenfalls keine Unterschiede. 

Wenn ich so Ruckler habe, habe ich bis jetzt immer mit dem Profiler herausgefunden, woran das lag:

In Unity Window->Analysis->Profiler

https://docs.unity3d.com/Manual/ProfilerWindow.html

Share this post


Link to post
Share on other sites

Ich bin mir sicher ich sage den meisten nichts neues.

Aber ich wollte nochmal kurz den Effekt eingehen, bei dem die Spielfigur langsamer wird, wenn man einen Hügel hinaufläuft. Es hatte nichts mit den Collidern zu tun, sondern mit der Schwerkraft. Die hatte quasi am Movementspeed gezogen und somit reduziert.

Ich hab das folgendermaßen gelöst:

  if(!dead && !gameOver && GameLogic.gameStartet)
        {
            if (permaRun && !jump && Grounded())
            {
                rb2d.gravityScale = 2f;
                CharakterMove();
            }
            else
            {
                rb2d.gravityScale = 10f;
                CharakterMove();
            }

 

Die Gravity sollte nicht auf 0 gesetzt werden, da der Character ansonsten beim laufen das Schweben anfängt :)

Ich muss aber dazu sagen, dass ich bei weiten kein Profi bin. Es gibt bestimmt elegantere und bessere Lösungen. Aber es funktioniert.

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

×