我遇到过这样一种情况,如果在Update()的不同遍中的两个不同位置调用Time.time,则值将不同 以其增量,因此对Vector3(0,Time.time,0)的任何使用都会导致 跳入结果。我有一个在其中开始路径的游戏对象 然后,代码部分将过渡到另一组代码 在脚本中。第一次调用中Time.time的间隔执行 第二个调用不同于第一个调用中的间隙 呼叫。这就是为什么我要更换。它与代码无关。它关于两个Time.time用法之间的Time.time方差。我相信有一个执行引起的差异。
void Update () {
synchTime = Time.time;
// This proc releases gameobject from center into an outward spiralling trajectory till the height orbit path attained,
// then disables itself releasing the gameobject into the sine wave orbital path.
if (!reachedElevation)
{
transform.Translate(0, Time.deltaTime, 0);
reachedElevation = true;
_AgentY = Mathf.Sin(synchTime);//Keeps value started and in synch with usage below
}else{
// The trouble is making the 'Y' synch between where the spiral left off and this sine. It has to do with Time.time
_AgentY = Mathf.Sin(synchTime);
Debug.Log("Before transform.localPosition.y: " + transform.localPosition.y);
transform.localPosition = new Vector3(transform.localPosition.x, _AgentY, transform.localPosition.z);
Debug.Log("After transform.localPosition.y: " + transform.localPosition.y);
}
}
答案 0 :(得分:0)
在更新调用开始时创建一个本地变量,并将其设置为Time.time,然后您可以在更新中的任何地方引用此变量,并且该变量将保持不变。