同时创建多个预制体,只有最后一个执行函数

我循环创建了三个预制体,然后在点击时播放动画,只有最后一个预制体播放了动画,其他两个都没有执行,他们身上挂载的组件都是一样的,这是为什么啊,怎样才能在我点击时然三个预制体都播放动画呢
很急 谢谢了

clone() {

    for (let i = 0; i < 3; i++) {

        this.player = instantiate(this.newAnt);

        this.player.parent = this.ant

        this.player.setPosition((5+(i*6)), 0, 0)

        this.player.name = "ant"+[i]

    }

}

touchStart(touch: Touch, event: EventTouch) {
Ant.getInstance().play()//组件上的动画
}

this.player 不是局部变量,只赋值最后一个结果。建议:循环出来的预制体放进一个数组里管理

他的监听事件应该在预制体本身的脚本上 跟 this.player又有什么关系?

每一个预制体携带一个点击事件。循环创建,赋值给this.player。创建一亿次 还不是就一个?

我预制体本身的点击事件 跟你克隆脚本的变量有啥关系?

我克隆一个预制体 预制体本身监听被点击打印自身名字 那我克隆一万个 点击第1000个 打印的不是名字1000?点击第5000个 打印的不是名字5000?跟克隆脚本的变量有啥关系

他操控的变量是this.player 不懂就是用一遍

他如果在循坏外 this,player.on 手动添加监听那确实只有一个 如果预制体本身脚本有监听点击事件 跟这个变量没关系

this.showNumber = 0;
for (let i = 0; i < 10000;i++){
    this.showNumber = i;
}

this.showNumber有一千个嘛?他操控的是单单一个变量

再怎么控制 也只有最后一个。所以我让他放数组里管理。创建多少个管理多少个

对的 大佬 你是对的

嗯,你是对的。和变量没关系。和点击有啥关系啊?求解释?

点击第1000个 为什么前999个不打印?

你是对的,解释一下为什么前999个不打印?

我说的是 如果预制体本身有监听事件 打印自身名字 没有外部干预 不是一对一的关系?

我始终说了,他操作的是单一变量。始终只有创建的最后一个

如果他是用this.player.get.play播放动画的话那肯定是最后一个播放,你觉得人家会用一个player对象控制三个对象的动画?

Ant.getInstance().play()这个是啥呀