用unity 的时候做了一个积分制,打到一个物体,就destroy这个物体,在销毁前用getcomponent的方式获取计分板的脚本里的分数变量并且进行+=1;希望分数变量能随着游戏的实时进程而在game场景中显示出得分。
为此我创造了一个计分板预制体,然后拉了一个计分板实例到hierarchy里面,然后我开始运行游戏,结果发现游戏运行的时候,计分板实例的脚本里的分数变量一直为0;但预制体计分板本身的数字却在实时变化,点击停止运行游戏场景后,预制体计分板本身的分数保持着刚才得到的分数不变,没有重置为0;而hierarchy里的计分板实例的脚本里的分数变量在停止运行后同步了预制体本身的分数变量,并且进行下一次运行的时候保持这个数字不变,等下次运行结束的时候会累加上次运行保留的数据。
如何让计分板实例的脚本里的分数变量在游戏运行的时候实时变化并且在游戏运行结束后重置为0?
上代码
问题原因:Destroy销毁这个物体了,那么下次生成就不是这个物体了,而是一个新的物体,所以不管你销毁前修没修改他的分数,下次创建出来时它都是0。
解决方法:不Destroy销毁这个物体,只做隐藏处理,其他逻辑不动;这样就实现了游戏运行中预制体分板上的数字变化。
此时你修改的只是游戏运行时克隆出来的物体,所以不管游戏怎么运行本地预制体身上的数据都不会发生变化,也就达成了你要的游戏运行结束后重置为0的效果
上下代码看看把,不然无法定位,你这问题说得有点绕。