对象池放回去的节点再取出来的初始化问题

飞机被打掉后,播放自身动画,动画完后,把put到对象池,下次取出的时候,他的血量已经空了,而且停留在了动画的最后一帧动画, 请问怎么对他进行初始化呀?
我看官方文档有: enemy.getComponent(‘Enemy’).init();
但不知这个 init方法怎么写?

我想可能是把节点的图换为初始图吧

我在写这个游戏的时候,没有考虑到对象池问题,应该用对象池的

求大神帮忙 @Knox

这个没啥啊。你在Enemy脚本里面 添加一个init()方法 把怪物的血重置一下就行了啊,然后把动画在重新播放一下就行了

init: function(){
this.hP = ;
},

就是等号后面不会写了

初始化不就是赋值敌军最开始的基本数值吗?

这个值是在 properties里面定义的,我不知道怎么赋这个值

下面的碰撞没有写吗?碰到就生命值减呀

就是减没了,放回对象池了,再从对象池取出来的时候,没有血,所以需要初始化一下,把血给加上,把动画重置

初始多少血,就写多少血呀

这个值是在 properties里面定义的

你可以在onload 里定义的,

从对象池取出的时候,是不走onLoad函数的,而且在properties里面定义,方便非开发人员修改 @Knox 麻烦给说下从对象池中取出对象,怎么进行初始化? 我即得是不是有个收费的群,能及时帮着解决问题,如果有,麻烦给说一下群号

首先你要理解一下初始化是什么原因?

init: function(){
this.hP = 10(你想要定义的初始化数值,直接赋值就行了);
},

最简单的,onLoad函数里面写上:
this._initialHP = this.hP;
然后init函数:
this.hP = this._initialHP

他说这样不方便非开发人员在Inspector上面修改初始值

这个值是在 properties里面定义的,这里算定义并赋初值,但是如果想要类似重头开始游戏的话,你就需要重新去赋值你定义这些变量的数值

主要原因是你想把初始值和变化值在一个变量上完成,但是要完成你的想法需要两个变量。你可以在properties里面定义initialHP让非开发人员设置初始值,然后hP变量设置visible: false属性在Inspector中不显示出来。然后init里面,this.hP = this.initialHP就行了。

是这问题,多谢!