Question by 
               Bloodyprincessss · Oct 23, 2017 at 09:43 AM · 
                2drigidbody2d gamerigidbody2drpg  
              
 
              2D Sprite is floating when I move him (Rigidbody2D)
I have a big problem my sprite, so the player is "floating" when I move him all over the map (not throught objects or in water) . I changed the script because he was bouncing weird against some objects. So first my sprite was rotating weird, so I changed the script a bot but know he is just floating. And I dont really know what do do because Im a beginner thats my first RPG. ( my sprite have dropebox and also rigidbody2D)
using UnityEngine; using System.Collections;
public class PlayerController : MonoBehaviour {
 public float moveSpeed;
 private Animator anim;
 private Rigidbody2D myRigidbody;
 private bool PlayerMoving;
 private Vector2 LastMove;
 public string Horizontal { get; private set; }
 // Use this for initialization
 void Start () {
     anim = GetComponent<Animator>();
     myRigidbody = GetComponent<Rigidbody2D>();
 
 }
 
 // Update is called once per frame
 void Update () {
     Vector3 currentRotation = transform.localEulerAngles;
     currentRotation.z = 0;
     transform.localEulerAngles = currentRotation;
     PlayerMoving = false;
     if (Input.GetAxisRaw("Horizontal") > 0.5f || Input.GetAxisRaw("Horizontal") < -0.5 )
     {
         //transform.Translate (new Vector3(Input.GetAxisRaw("Horizontal") * moveSpeed * Time.deltaTime, 0f, 0f));
         myRigidbody.velocity = new Vector2(Input.GetAxisRaw("Horizontal") * moveSpeed, myRigidbody.velocity.y);
         PlayerMoving = true;
         LastMove = new Vector2(Input.GetAxisRaw("Horizontal"), 0f);
     }
     if (Input.GetAxisRaw("Vertical") > 0.5f || Input.GetAxisRaw("Vertical") < -0.5f )
     {
         //transform.Translate(new Vector3(0f, Input.GetAxisRaw("Vertical") * moveSpeed * Time.deltaTime, 0f));
         myRigidbody.velocity = new Vector2(myRigidbody.velocity.x, Input.GetAxisRaw("Vertical") * moveSpeed);
         PlayerMoving = true;
         LastMove = new Vector2(0f, Input.GetAxisRaw("Vertical"));
     }
     anim.SetFloat("MoveX", Input.GetAxisRaw("Horizontal"));
     anim.SetFloat("MoveY", Input.GetAxisRaw("Vertical"));
     anim.SetBool("PlayerMoving", PlayerMoving);
     anim.SetFloat("LastMoveX", LastMove.x);
     anim.SetFloat("LastMoveY", LastMove.y);
 }
 
               }

So that what my game look like
 
                 
                screenshot-unity.png 
                (172.7 kB) 
               
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
2D Characters slowly drifts downwards? 1 Answer
Will this work? 0 Answers
All colliders not longer working 0 Answers
Arkanoid-like bounce troubles 1 Answer
Game Object Drop 0 Answers