Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

关于无法Destroy掉List中已经在其他类中用方法Destroy过了的游戏物体
PublicFaith发起了问答2016-12-09
1
回复
3145
浏览

老师你好 我在Creator类中public一个List.stone 然后在下面每生成一个实例就会加入到这个List中 然后加了一个DestroyAll方法 for循环遍历一遍这个List  Destroy(stone[i])  stone.RemoveAt[i]  单独去运行其实是没有问题的

但是这里每次加入到List里面的实例 我在其他类中也有方法会去随机的Destroy 如果有提前消灭的stone 我在使用Creator中的Destroy方法 就会报错 说无法销毁已经销毁了的物体 因为在List中那个提前销毁的对象依然占有我的Count值

所以想问老师 有没有方法1.可以检测到游戏中的对象一旦被Destroy 就会自动去除在List中的索引

2.有List中的Count对象被摧毁了 就自动忽略 销毁剩余的 

所有回复
  • siki • 2016-12-09

    1,你可以每个物体销毁前,给list发消息,移除自身

    2,或者你在list里面销毁之前,判断一下这个游戏物体是否==null,如果为空,说明已经被销毁了,那就只从list移除,不再destroy

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!