Hello all
I’m trying to move a sprite X pixels in each direction using the keyboard along 0.5 seconds.
my code so far:
using UnityEngine;
using System.Collections;
public class Ball : MonoBehaviour {
// Use this for initialization
void Start () {
}
private float speed = 3f;
private float movementX = 0;
private float newPosX = 0;
private bool isMoving = false;
// Update is called once per frame
void Update () {
if (!isMoving)
{
movementX = 0;
newPosX = 0;
if (Input.GetKey(KeyCode.LeftArrow))
{
isMoving = true;
movementX = -speed * Time.deltaTime;
newPosX = transform.position.x - renderer.bounds.size.x;
}
if (Input.GetKey(KeyCode.RightArrow))
{
isMoving = true;
movementX = speed * Time.deltaTime;
newPosX = transform.position.x + renderer.bounds.size.x;
}
}
transform.position = new Vector3(transform.position.x + movementX, transform.position.y, transform.position.z);
if (transform.position.x >= newPosX)
{
isMoving = false;
movementX = 0;
}
}
}
Problem is the movement is kind of erratic. sometimes it’s fast, sometimes it’s slow as hell… I’ve tried taking deltaTime into account, but that didn’t seem to help…
Any ideas? Please be easy, I’m a n00b when it comes to Unity