- Home /
Is there a way to have an object gradually move to one spot, move back, and then stop?
Short version: Is there a way to have an object gradually move to one spot, move back, and then stop?
Long version: I'm trying to make an enemy for a game that moves along the ground and then hops up every two seconds. I've tried to use the Mathf.PingPong function, but I could not find a way to stop it once it gets going. Further, if I put the command in the Start() function, the object teleports to the destinations instead of gradually moving from one spot to the other.
It would be great if there was a Transform command that gradually moves an object to a designated spot, but my searches here and on the web have not turned up anything. If I had that, I could use "while" and "yield WaitForSeconds" to accomplish my AI movement. But the best I can do is have the objects teleport to a certain spot or have an object continuously move up and down.
Any ideas?
Here is my code for those who are curious:
#pragma strict
//Stores the position the enemy spawns at
var initPos : Vector3;
var hopDirection : Vector2;
var hopSpeed : float;
function Start () {
initPos = transform.position;
}
function Update() {
transform.Translate(Time.deltaTime * -5, 0, 0);
}
function TumbleHop() {
transform.position.y = initPos.y + Mathf.PingPong(Time.time * hopSpeed, hopDirection.y);
transform.position.x = initPos.x + Mathf.PingPong(Time.time * hopSpeed, hopDirection.x);
}
Your answer
![](https://koobas.hobune.stream/wayback/20220613081021im_/https://answers.unity.com/themes/thub/images/avi.jpg)