用增加100的计数器替换Unity Time.time?

时间:2019-04-30 04:48:49

标签: c unity3d time

我遇到过这样一种情况,如果在Update()的不同遍中的两个不同位置调用Time.time,则值将不同 以其增量,因此对Vector3(0,Time.time,0)的任何使用都会导致 跳入结果。我有一个在其中开始路径的游戏对象 然后,代码部分将过渡到另一组代码 在脚本中。第一次调用中Time.time的间隔执行 第二个调用不同于第一个调用中的间隙 呼叫。这就是为什么我要更换。它与代码无关。它关于两个Time.time用法之间的Time.time方差。我相信有一个执行引起的差异。 Path showing corruption

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

            } 
     }

1 个答案:

答案 0 :(得分:0)

在更新调用开始时创建一个本地变量,并将其设置为Time.time,然后您可以在更新中的任何地方引用此变量,并且该变量将保持不变。