- Home /
How to move smoothly without using iTween?
I have some objects. They move 1 unit(tile) pr. jump. When they move, I would like to make them move fast, but smooth (with a little ease in/out).
The next move can only happend when the first has completed, so holding the JUMP LEFT key will make it jump smoothly over time.
I am looking for a way to implement this.
At the moment I have a hard jump which works, but looks ugly:
void Update()
{
if (Input.GetKeyUp(KeyCode.LeftArrow))
{
playerPos.X --;
}
if (Input.GetKeyUp(KeyCode.RightArrow))
{
playerPos.X ++;
}
goPlayer.transform.position = playerPos;
}
I've removed all the position checks and other unimportant stuff so focus can stay on the smooth movement.
I would like to break this down with a smoother jump, that would take lets say 0.5 sec.
I believe I need some kinda of way telling that I am currently in a move, so I cant move again and perhaps make a playerTargetPos too which I use for the movement?
Answer by Eric5h5 · Aug 29, 2011 at 12:34 AM
Use MoveObject. It doesn't have easing, but you can add that easily by changing the Lerp line in the Translation function from this:
thisTransform.position = Vector3.Lerp(startPos, endPos, t);
to this:
thisTransform.position = Vector3.Lerp(startPos, endPos, Mathf.SmoothStep(0.0, 1.0, t));
Use coroutines instead of Update to make things easier.
Thank you Eric! always a pleasure to read your answers.
Your answer
Follow this Question
Related Questions
Smooth movement using Rigidbody2d 3 Answers
Helicopter Controls 1 Answer
Smooth movement over seem? 0 Answers
in 2d game, while draging and dropping object its movement very slow , it can't move smoothly ? 0 Answers
skigame movement problem 0 Answers