有一个功能 想让攻击的特效向着玩家移动
当我这样写的时候
@ccclass(‘Genki_bomb’)
export class Genki_bomb extends Component {
private speed: number = 1;
private targetPosition: Vec3 = new Vec3(); // 目标位置
private direction = new Vec3();
update(deltaTime: number) {
// 计算当前位置和目标位置之间的方向向量
Vec3.subtract(this.direction, this.targetPosition, this.node.position);
Vec3.normalize(this.direction, this.direction);
// 计算当前帧应该移动的距离
const distance = this.speed * deltaTime;
// 计算移动的增量向量
const deltaPosition = new Vec3();
Vec3.multiplyScalar(deltaPosition, this.direction, distance);
// 计算新的位置
const newPosition = new Vec3();
Vec3.add(newPosition, this.node.position, deltaPosition);
// 更新节点位置
this.node.setPosition(newPosition);
}
public setPlayer(position: Vec3) {
this.targetPosition.set(position);
}
}
是可以正常运行的
但是改为这样
@ccclass(‘Genki_bomb’)
export class Genki_bomb extends Component {
private speed: number = 1;
private targetPosition: Vec3 = new Vec3(); // 目标位置
private direction = new Vec3();
update(deltaTime: number) {
// 计算当前帧应该移动的距离
const distance = this.speed * deltaTime;
// 计算移动的增量向量
const deltaPosition = new Vec3();
Vec3.multiplyScalar(deltaPosition, this.direction, distance);
// 计算新的位置
const newPosition = new Vec3();
Vec3.add(newPosition, this.node.position, deltaPosition);
// 更新节点位置
this.node.setPosition(newPosition);
}
public setPlayer(position: Vec3) {
this.targetPosition.set(position);
// 计算当前位置和目标位置之间的方向向量
Vec3.subtract(this.direction, this.targetPosition, this.node.position);
Vec3.normalize(this.direction, this.direction);
}
}
移动的方向就乱了起来
实在搞不明白是哪里的问题