fix(怪物): 修复对象池复用导致怪物无限放大的问题
记录预制体初始缩放值,避免重复乘算
This commit is contained in:
@@ -136,6 +136,8 @@ export class Monster extends ecs.Entity {
|
|||||||
if (!node) {
|
if (!node) {
|
||||||
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
||||||
node = instantiate(prefab);
|
node = instantiate(prefab);
|
||||||
|
// 记录预制体的初始缩放值,防止对象池复用时累乘导致无限变大
|
||||||
|
(node as any)._baseScale = node.scale.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 统一挂到实体显示层 HERO 节点下
|
// 统一挂到实体显示层 HERO 节点下
|
||||||
@@ -147,7 +149,8 @@ export class Monster extends ecs.Entity {
|
|||||||
collider.enabled = false;
|
collider.enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
node.setScale(size*node.scale.x,size*node.scale.y);
|
let baseScale = (node as any)._baseScale || v3(1, 1, 1);
|
||||||
|
node.setScale(size * baseScale.x, size * baseScale.y);
|
||||||
node.setPosition(pos)
|
node.setPosition(pos)
|
||||||
const model = this.get(HeroAttrsComp);
|
const model = this.get(HeroAttrsComp);
|
||||||
// 从配置表获取怪物静态数据
|
// 从配置表获取怪物静态数据
|
||||||
|
|||||||
Reference in New Issue
Block a user