我对 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);
}
我只是在想,你可能会用大量未被摧毁的子弹飞向无限远来超载记忆。