我用状态机做个一个敌人,并把它放在了预制体中
当场景中存在一个敌人时玩家攻击敌人,敌人死亡一切都很正常
但是出现两个敌人时,就发生问题了,我攻击第一个敌人第二个敌人受伤死亡,第一个敌人的所有反馈都反应在了第二个敌人上的。攻击第二个敌人,第二个敌人倒是正常的。
我想了很久
可能是和我所有的敌人都添加的一个FSM有关系,出现两个以上的敌人时,fsm就会更新但是我引用fsm的数值,都是直接通过单例EnemyFSM.instance.paramenter.(像这样引用的)。
我就尝试着改了一下(如下)这个扣血顺序不对的问题就解决了
但是这种问题存在挺多的,而且有的地方不太好修改,像下面这张图,这个我也尝试着改过,但是没成功
这里就是玩家的被击退方向,通过计算enemyFSM脚本中的target.position和attckPoint.position的坐标矢量差确定方向,但是这个fsm所指向的都是同一个脚本(特指挂载在敌人1上的脚本),玩家的击退方向也就是敌人1的反方向。上的扣血问题也大概是这个问题

如果要修改的话这里到底该如何修改好啊
还有一个,玩家的攻击检测同时检测到两个以上的敌人时,就会卡在下图的“将动画速度设为0“的代码上,虽然不知道是什么原因,但应该也和上面的有关
我也有问过GPT,好像是 说因为引用的是,enemyFSM.paramenter中的变量,而这个变量是全局变量,所以才会引发一系列的问题。吧u们我该怎么改啊,现在真的一头雾水了,先玩会歇歇了,头痛
当场景中存在一个敌人时玩家攻击敌人,敌人死亡一切都很正常
但是出现两个敌人时,就发生问题了,我攻击第一个敌人第二个敌人受伤死亡,第一个敌人的所有反馈都反应在了第二个敌人上的。攻击第二个敌人,第二个敌人倒是正常的。
我想了很久
可能是和我所有的敌人都添加的一个FSM有关系,出现两个以上的敌人时,fsm就会更新但是我引用fsm的数值,都是直接通过单例EnemyFSM.instance.paramenter.(像这样引用的)。
我就尝试着改了一下(如下)这个扣血顺序不对的问题就解决了

但是这种问题存在挺多的,而且有的地方不太好修改,像下面这张图,这个我也尝试着改过,但是没成功
这里就是玩家的被击退方向,通过计算enemyFSM脚本中的target.position和attckPoint.position的坐标矢量差确定方向,但是这个fsm所指向的都是同一个脚本(特指挂载在敌人1上的脚本),玩家的击退方向也就是敌人1的反方向。上的扣血问题也大概是这个问题

如果要修改的话这里到底该如何修改好啊
还有一个,玩家的攻击检测同时检测到两个以上的敌人时,就会卡在下图的“将动画速度设为0“的代码上,虽然不知道是什么原因,但应该也和上面的有关
我也有问过GPT,好像是 说因为引用的是,enemyFSM.paramenter中的变量,而这个变量是全局变量,所以才会引发一系列的问题。吧u们我该怎么改啊,现在真的一头雾水了,先玩会歇歇了,头痛
