数组索引超出范围!统一

时间:2015-03-06 16:18:49

标签: arrays unityscript

数组索引超出范围,需要一些帮助!

oid OnCollisionEnter2D(Collision2D col) {
        rigidbody2D.velocity = new Vector2(0, 0);
        transform.rotation = Quaternion.Euler (0, 0, headDownAngle);
        if(!isDied) {
            audios[1].Play();
            animator.SetTrigger("dead");
            iTween.ShakePosition(Camera.main.gameObject, new Vector3(0.3f, 0.3f, 0), 0.5f);
        }       
        isDied = true;
        isPlaying = false;

2 个答案:

答案 0 :(得分:0)

我没有看到任何其他数组被使用(除非你的其他一个函数使用数组)所以看起来这行导致错误:

 audios[1].Play();

记住数组是基于零的,所以数组中的第一个位置实际上是0,所以如果你试图得到第一个元素:

audios[0].Play().

如果您尝试获取第二个元素,请确保音频有2个元素。

答案 1 :(得分:0)

数组索引超出范围是当您尝试使用不存在的数组部分时引起的错误 例子

float numOfTests = 2;
AudioSource[numOfTests] tests;

void Start()
{
    tests[3].play();
} 

由于阵列中只有2个音频源,我们可以访问第三个音频源,因为它不存在。

我希望这会有所帮助。我曾经以统一的方式编写代码,然后转移到c ++并编写了自定义引擎,因此,如果我的回答不能解决问题,那可能是因为我一年没有使用统一了。