我正在使用LineRenderer进行绘制,但是我启用和禁用了脚本在不同时间的游戏对象。
第一个启用它的功能完美,在我禁用并启用后,出现此错误
IndexOutOfRangeException:索引超出数组的范围。
此行代码显示错误
Vector2 touchPos = Camera.main.ScreenToWorldPoint(Input.touches[0].position);
这里是所有代码
public GameObject linePrefab;
private Line activeLine;
private void Update()
{
if (Input.touchCount > 0)
{
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
GameObject lineGO = Instantiate(linePrefab);
activeLine = lineGO.GetComponent<Line>();
}
if (Input.GetTouch(0).phase == TouchPhase.Ended)
{
activeLine = null;
}
}
if (activeLine != null)
{
Vector2 touchPos = Camera.main.ScreenToWorldPoint(Input.touches[0].position);
activeLine.UpdateLine(touchPos);
}
}
答案 0 :(得分:1)
您假设用户正在触摸代码中的屏幕。
在处理触摸位置之前,您需要检查是否有任何有效的触摸。具体来说,您可以添加是否检查Input.touchCount> 0