stupid question. How can I say that an object must move with translated for only 2 seconds and then stop?

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);


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);



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;

…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)

        Vector3 movement = Movement * Time.deltaTime;

    #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!