- Home /
Question by
toxmixgd · Apr 10, 2020 at 11:47 PM ·
startscene-changetime.time
Can i set up (Time.time) to a specific scene?
I'm new in Unity and i have a problem, when i start the game (Time.time) starts immediately and i want that (Time.time) starts in a specific scene. Can i do that?, What another solution i have? Please help.
PROGRAM
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Elevador : MonoBehaviour { public Transform startPos, endPos; public bool repeatable = false; public float speed = 1.0f;
public float duration = 3.0f;
float startTime, totalDistance;
float NewTime;
bool on = false;
// Use this for initialization
IEnumerator Start () {
startTime = Time.time;
totalDistance = Vector3.Distance(startPos.position, endPos.position);
while(repeatable) {
yield return RepeatLerp(startPos.position, endPos.position, duration);
yield return RepeatLerp(endPos.position, startPos.position, duration);
}
}
// Update is called once per frame
void Update () {
if(!repeatable && on == true) {
float currentDuration = (Time.time - NewTime) * speed;
float journeyFraction = currentDuration / totalDistance;
this.transform.position = Vector3.Lerp(startPos.position, endPos.position, journeyFraction);
}
if(Input.GetKeyDown(KeyCode.Z) && on == false)
{
NewTime = Time.time - startTime;
on = true;
}
if(Input.GetKeyDown(KeyCode.Q))
{
on = true;
startPos.transform.Translate(0, -12.5f, 0);
endPos.transform.Translate(0, -12.5f, 0);
NewTime = Time.time - startTime;
}
}
public IEnumerator RepeatLerp(Vector3 a, Vector3 b, float time) {
float i = 0.0f;
float rate = (1.0f / time) * speed;
while (i < 1.0f) {
i += Time.deltaTime * rate;
this.transform.position = Vector3.Lerp(a, b, i);
yield return null;
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220612231049im_/https://answers.unity.com/themes/thub/images/avi.jpg)