Jump to content
Unity Insider Forum
Sign in to follow this  
Younes82

Blöcke stoppen unterschiedlich

Recommended Posts

Hallo,

Ich arbeite derzeit an einem Spiel, indem man auf einem Balken steht und immer Blöcke von der Seite kommen auf die man springen muss.

Wie es im Script steht sollen die Blöcke bei x = 0 stehen bleiben.Das Problem ist, dass die Blöcke immer unterschiedlich stehen also zb 0.17 oder -0.2 und halt nicht genau auf 0.

Bitte um Hilfe

 

Danke

private void Update()
    {

        if (!isColliding)
        {
            
            if (MoveDirection == Cubespawner.MoveDirection.L)
            {
               
                if (transform.position.x <= 0)
                {
                    transform.position += transform.right * Time.deltaTime * MoveSpeed;
                }
            }
            else
            {
                if (MoveDirection == Cubespawner.MoveDirection.R)
                {
                    
                    if (transform.position.x >= 0)
                    {
                        transform.position += -transform.right * Time.deltaTime * MoveSpeed;
                    }
                }
            }
        }

 

blöcke.PNG

Share this post


Link to post
Share on other sites

Hallöchen!

Time.deltaTime ist eine krumme Angelegenheit, da der Rechner da im Bereich von Sekundenbruchteilen die Zeit zwischen zwei Frames misst. Und die hängt von lauter Faktoren ab, je nach dem, wieviel deine Kiste sonst gerade so macht. Du kannst also Je nach Framerate problemlos über das Ziel hinausschießen. Je niedriger die Framerate, desto weiter kannst du im schlimmsten Fall gehen.

Deswegen willst du die Position genau setzen, sobald die Bedingung dafür erfüllt ist:

if (MoveDirection == Cubespawner.MoveDirection.L)
{
  if (transform.position.x < 0) // Beachte: Kleiner-als statt kleiner-gleich
  {
    transform.position += transform.right * Time.deltaTime * MoveSpeed;
    
    if (transform.position >= 0)
    {
      var pos = transform.position;
      pos.x = 0;
      transform.position = pos;
    }
  }
}

 

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...