- Home /
Answer by LukeAntConroy · Feb 11, 2013 at 06:35 PM
using UnityEngine; using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
float F_time;
void Update ()
{
F_time += Time.deltaTime;
if(F_time < 2.0f)
{
transform.Translate(Vector3.left * Time.deltaTime);
}
}
}
Answer by AndrewGrayGames · Feb 11, 2013 at 06:26 PM
Not a stupid question!
Let's break down your problem a bit, first.
A) I want my object to be translated
B) I want this translation to only last for two seconds.
First, translation is simple:
transform.Translate(xAmount, yAmount, zAmount);
...Or...
transform.Translate(vector3Amount);
I prefer the Vector3 version because you can achieve Framerate Independence really easily, as such:
// Move up 2 units per second, and forward 1 unit per second.
Vector3 movement = new Vector3(0.0f, 2.0f, 1.0f) * Time.deltaTime;
transform.Translate(movement);
...Now, let's combine it with that other requirement, that the translation last two seconds:
public class FooBehavior : MonoBehaviour
{
#region Fields/Properties
public float Duration = 2.0f;
private float _moveEndsAt = 0.0f;
public Vector3 Movement = new Vector3(0.0f, 2.0f, 1.0f);
#endregion Fields/Properties
#region Engine Hooks
public void Start()
{
_moveEndsAt = Time.time + Duration;
}
public void FixedUpdate()
{
if(Time.time > _moveEndsAt)
return;
Vector3 movement = Movement * Time.deltaTime;
transform.Translate(movement);
}
#endregion Engine Hooks
}
Pretty much, we just figure out when we want the move to stop (now + duration), and as long as the current time is prior to that ending time, we perform the translation every frame.
Good question, and hope that helps!
Your answer
![](https://koobas.hobune.stream/wayback/20220613092524im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Click to Move Object till it reaches a certain place 1 Answer
Movement restriction... 1 Answer
Loop from Point A to Point B after Point C 2 Answers
How to stop coroutines or functions 2 Answers
Move to a clicked point? 1 Answer