在开始时间:
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是一个List,每个GameObject都有一个LineRenderer组件。
instancesToMove也列出了这个对象与行同时移动。
但我想让整个过程更快。我希望线条绘制和移动速度更快。如果我现在更改速度变量值,它将根本不绘制线条。
答案 0 :(得分:1)
将counter
更改为计入其他值,并将/ 25f
更改为该新值。较小的值=更快的抽奖。
你的代码说“这样做了25次,当它达到25次时,就行了。”这意味着您需要花费25帧来绘制线条。如果您希望它绘制得更慢,则需要更改绘制线条所花费的帧数。
这也使你的速度变化......毫无用处。你可以完全删除它。