2D Top Down Character being Pulled down and movement script not working?

I’m making a 2D Top-Down PAC-Man-Esque Game and my character is being pulled down even though gravity is off. My movement script isn’t working either. Please Help!EDIT: Also when I take off the box collider or check “Is Trigger” the character is not pulled towards objects anymore, but the character is pulled back to (x=0, y=0[Does not do this if box collider has “Is Trigger” on, but the character goes through walls then]) and the higher the speed the further the character can move while collider is off

    using UnityEngine;
    using System.Collections;
    
    public class CharacterMove : MonoBehaviour {
    	public float speed = 0.4f;
    	Vector2 dest = Vector2.zero;
    
    	void Start() {
    		dest = transform.position;
    	}
    
    	void FixedUpdate() {
    		// Move closer to Destination
    		Vector2 p = Vector2.MoveTowards(transform.position, dest, speed);
    		GetComponent<Rigidbody2D>().MovePosition(p);
    
    		// Check for Input if not moving
    		if ((Vector2)transform.position == dest) {
    			if (Input.GetKey(KeyCode.UpArrow) && valid(Vector2.up))
    				dest = (Vector2)transform.position + Vector2.up;
    			if (Input.GetKey(KeyCode.RightArrow) && valid(Vector2.right))
    				dest = (Vector2)transform.position + Vector2.right;
    			if (Input.GetKey(KeyCode.DownArrow) && valid(-Vector2.up))
    				dest = (Vector2)transform.position - Vector2.up;
    			if (Input.GetKey(KeyCode.LeftArrow) && valid(-Vector2.right))
    				dest = (Vector2)transform.position - Vector2.right;
    		}
    	}
    
    	bool valid(Vector2 dir) {
    		// Cast Line from 'next to Character' to 'Character'
    		Vector2 pos = transform.position;
    		RaycastHit2D hit = Physics2D.Linecast(pos + dir, pos);
    		return (hit.collider == GetComponent<Collider2D>());
    	}
    }

Gravity is off!! Even on Physics and Physics2D!!!

Current code (still not working):
using UnityEngine;
using System.Collections;

public class CharacterMove : MonoBehaviour {
	public float speed = 0.4f;
	private Vector2 moveDirection = Vector2.zero;
	public GameObject Character;

	void Start() {
		moveDirection = transform.position;
	}

	void FixedUpdate() {
		// Move closer to moveDirection
		Vector2 p = Vector2.MoveTowards(transform.position, moveDirection, speed);
		GetComponent<Rigidbody2D>().MovePosition(p);

		// Check for Input if not moving
			moveDirection = new Vector2 (Input.GetAxis ("Horizontal"), Input.GetAxis ("Vertical"));
			moveDirection = transform.TransformDirection (moveDirection);
		GetComponent<Rigidbody2D>().AddForce(moveDirection*=speed);
			//Multiply it by speed.
			moveDirection *= speed;
		// Animation Parameters
		Vector2 dir = moveDirection - (Vector2)transform.position;
		GetComponent<Animator>().SetFloat("DirX", dir.x);
		GetComponent<Animator>().SetFloat("DirY", dir.y);
	}
}

I’m pretty new to this, so I apologize if I lead you astray, but I think you need to change your method FixedUpdate to Update as FixedUpdate is used for objects with a RigidBody component and physics enabled.

Take a look at the second line of the FixedUpdate documentation

I’m having the same problem and this isn’t solving it. It seems to be something wrong with the box collider.