Hello,
I am at the very beginning of developing my top-down 2D game in Unity. Attached to my simple sprite is a 2D box collider and a 2D rigidbody. The rigidbody has a gravity scale of 0 and rotation disable - admittedly, the only reason I am using the rigidbody is for collision detection. I am using the below code which is allowing me to move in somewhat of a grid pattern only - no diaganol movement:
using UnityEngine;
using System.Collections;
public class CharacterController2D : MonoBehaviour {
public float speed = 1.0f;
private Rigidbody2D rb2D;
void Start () {
rb2D = GetComponent<Rigidbody2D> ();
}
void FixedUpdate(){
if (Input.GetKey(KeyCode.D) && rb2D.transform.position == rb2D.transform.position)
{
rb2D.transform.position += Vector3.right;
}
else if (Input.GetKey(KeyCode.A) && rb2D.transform.position == rb2D.transform.position)
{
rb2D.transform.position += Vector3.left;
}
else if (Input.GetKey(KeyCode.W) && rb2D.transform.position == rb2D.transform.position)
{
rb2D.transform.position += Vector3.up;
}
else if (Input.GetKey(KeyCode.S) && rb2D.transform.position == rb2D.transform.position)
{
rb2D.transform.position += Vector3.down;
}
rb2D.transform.position = Vector3.MoveTowards(rb2D.transform.position, rb2D.transform.position, speed * Time.deltaTime);
}
}
The immediate issue is that my sprite is just cruising! I have the speed at .025 in the inspector and he is still moving way to fast. I have tried adjusting the velocity of the rigidbody. I have googled the issue. I cannot find anything helpful.
I just want the sprite moving at a reasonable speed.