我如何更改startcoroutine内部绘制线的速度



开始:

private void Start()
    {
       StartCoroutine(moveLines());
    }

在Movelines中:

IEnumerator moveLines()
    {
        for (int i = 0; i < allLines.Count; i++)
        {
            allLines[i].SetActive(true);
            counter = 0;
            endPos = allLines[i].GetComponent<EndHolder>().EndVector;
            var dist = Vector3.Distance(endPos, startPos);
            while (counter < 25)
            {
                dist = Vector3.Distance(instancesToMove[0].transform.position, endPos);
                counter++;
                endPos = allLines[i].GetComponent<EndHolder>().EndVector;
                startPos = allLines[i].GetComponent<LineRenderer>().GetPosition(0);
                instancesToMove[0].transform.position =
                    Vector3.MoveTowards(startPos, endPos, counter / 25f * speed);
                allLines[i].GetComponent<LineRenderer>().SetPosition(1, instancesToMove[0].transform.position);
                yield return null;
            }
        }
    }

我有一个全局速度变量,但没有更改线条图的速度。

Alllines是每个gameObject的列表。

instanceStomove也列出了此对象/s在线路上同一时间移动。

,但我想更快地使整个过程。我希望线条绘制和intartance速度更快。如果我现在更改速度变量值,它将根本不会绘制线路。

更改 counter以计数不同的值,然后将/ 25f更改为该新值。较小的值=更快的绘制。

您的代码说:"这样做25次,当它达到25时,该行将完成。"这意味着您花了25帧绘制线路。如果您希望它的绘制较慢,则需要更改花费多少帧。

这也使您的速度变量...毫无用处。您可以完全删除它。

最新更新