嘿,我是unity的新手,试图借助线条渲染器来创建一条轨迹线,但似乎并不奏效。我下面附上了我的运动脚本。如果有人能帮助我,那将是非常有帮助的。
public void Update()
{
if (Input.GetMouseButtonDown(0)) //press
{
startPoint = cam.ScreenToWorldPoint(Input.mousePosition);
startPoint.z = 15;
direction = endPoint - startPoint;
transform.right = direction;
for (int i = 0; i < numberOfDots; i++)
{
trajectoryDots[i].transform.position = calculatePosition(i * 0.01f);
}
}
if (Input.GetMouseButtonUp(0)) //release
{
endPoint = cam.ScreenToWorldPoint(Input.mousePosition);
endPoint.z = 15;
force = new Vector2(Mathf.Clamp(startPoint.x - endPoint.x, minPower.x, maxPower.x), Mathf.Clamp(startPoint.y - endPoint.y, minPower.y, maxPower.y));
rb.AddForce(force * power, ForceMode2D.Impulse);
}
}
我相信你不能使用'trajectoryDots[i].transform.position'来设置位置。LineRenderers有一个显式的.SetPosition()函数。
试着研究一下这个。https:/docs.unity3d.comScriptReferenceLineRenderer.SetPositions.html。
这也许能解决你的问题。
线性渲染没有所有位置的变换,所以你不能设置变换的位置。
所以你不能设置变换的位置。 相反,可以使用lineRenderer.SetPosition函数来设置线中点的位置和索引。