Unity:索引问题超出了数组的范围

时间:2019-01-16 19:25:08

标签: unity3d

我正在使用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);
    }
}

1 个答案:

答案 0 :(得分:1)

您假设用户正在触摸代码中的屏幕。

在处理触摸位置之前,您需要检查是否有任何有效的触摸。具体来说,您可以添加是否检查Input.touchCount> 0