Объект прекращает движение, потому что как только countDown достигает 0,0f, вы все равно перемещаете его вперед, но вы также перемещаете его назад.
Другими словами, у вас работает код, который в основном делает это:
if (countDown > 0.0f) {
transform.position += Vector3.forward * Time.deltaTime;
countDown -= Time.deltaTime;
} else if (countDown <= 0.0f) {
transform.position += Vector3.forward * Time.deltaTime;
transform.position += Vector3.back * Time.deltaTime;
countDown -= Time.deltaTime;
Я бы порекомендовал запустить ваш код следующим образом:
public class Problem1 : MonoBehaviour {
float countDown = 5.0f;
// Use this for initialization
void Start () {
}
void Update () {
if (countDown > 0.0f) {
transform.position += Vector3.forward * Time.deltaTime;
countDown -= Time.deltaTime;
}
else if (countDown <= 0.0f) {
transform.position += Vector3.back * Time.deltaTime;
countDown += Time.deltaTime;
}
}
}
на самом деле оператор else, вероятно, будет работать лучше, чем оператор else if, но я сделал его оператор else ifутверждение для ясности.
Удачи!