为什么这个错误不断弹出?索引超出范围:Unity 2D/WebGL C#



我对 Unity 比较陌生,并且经常出现错误。我正在创建一个简单的2D游戏,玩家可以在其中向敌人发射这些子弹,这些敌人是预制件。在 Unity 本身中,一切正常,但是当我尝试在 WebGL 中构建以在我的浏览器中播放时,错误不断弹出,说我的内存超出范围或索引超出范围。

我尝试在chrome,Firefox和资源管理器上执行此操作,但同样的事情不断发生。我尝试在互联网上搜索,但到目前为止还没有找到有关如何解决此问题的答案。这是我的项目符号脚本的代码,如果有帮助的话。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WebShooter : MonoBehaviour {
    public Transform firePoint;
    public GameObject bulletPrefab;
    void Update() {
        if (Input.GetKeyDown(KeyCode.Space)) {
            Shoot();
        }
    }
    void Shoot() {
        Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
    }
    private void OnTriggerEnter2D(Collider2D hitInfo) {
        Destroy(gameObject);
    }
}

https://i.stack.imgur.com/s0y1k.jpg

这是否与您没有摧毁未击中游戏对象的子弹有关? 一旦它们离开屏幕,您有任何代码可以销毁它们吗?

If(Mathf.Abs(bulletPrefab.position) - Mathf.Abs(firePoint.position) > 10)
{
   Destroy(gameObject);
}

我只是在想,你可能会用大量未被摧毁的子弹飞向无限远来超载记忆。

最新更新