Forward 拼错了
ShootBall脚本IsCross方法问题:
因为本游戏是2D游戏,而Z坐标的位置会影响两个球的距离,所以应当使用Vector2.Distance方法判断,而非Vector3。
修改如下:
public bool IsCross(Vector3 targetPos, float dis)
{
return Vector2.Distance(transform.position, targetPos) <= dis;
}
前面ObjectPool脚本的GetObject方法中,while循环中都掉了return,导致运行就卡死。
其中有一次运行的时候控制台提示内存溢出,就找了下脚本中有循环的部分,发现是GetObject函数写错了,漏写了return。
while (i-->0) {
T t = pool[i];
pool.RemoveAt(i);
//return t; //开始的时候这句漏写了
}
另外,正确的写法并没有循环,所以把while改成了if,至少写错的情况下也不会有死循环的情况。