Node move but Collider2D is still in old pos?

When i shoot a node moving, it’s doens’t hurt the node, but shoot to old pos (spawn pos) of node, it’s hurt?.

  • Collider2D in the same node with movement code.
import { _decorator, CCInteger, Component, Node, ProgressBar, Vec2, Vec3 } from 'cc';
import { EnemyManager } from './EnemyManager/EnemyManager';
const { ccclass, property } = _decorator;

@ccclass('EnemyController')
export class EnemyController extends Component {
    @property(ProgressBar)
    private hpBar: ProgressBar;
    @property(CCInteger)
    public maxHp: number;
    @property(CCInteger)
    public hp: number;
    @property(CCInteger)
    public atk: number;
    @property(CCInteger)
    public atkSpeed: number;
    @property(CCInteger)
    public moveSpeed: number;
    start() {
        this.moveSpeed = 200;
        this.maxHp = 50;
        this.refresh();
    }
    public refresh() {
        this.hp = this.maxHp;
        this.hpBar.progress = this.hp / this.maxHp;
        this.moveEnemyToRandomPosition();
    }

    public onReceiveDamage(damage: number) {
        this.hp -= damage;
        this.hpBar.progress = this.hp / this.maxHp;

        if (this.hp <= 0) {
            this.node.active = false;
            EnemyManager.getInstance().eventTarget.emit("onDie", this);
        }
        // console.log("-" + damage + " hp")

    }
    @property(Vec3)
    private targetPosition: Vec3 = new Vec3();
    getRandomFloat(min: number, max: number): number {
        var rand = Math.random() * (max - min) + min;
        console.log(rand);
        return rand;
    }
    moveEnemyToRandomPosition(): void {
        this.targetPosition.set(this.getRandomFloat(-1393.671, 1416.996), this.getRandomFloat(1061.29, -880.519), 0);

    }

    // Cập nhật di chuyển kẻ địch
    update(dt: number): void {
        // Tính khoảng cách còn lại
        let distance = Vec3.distance(this.node.position, this.targetPosition);

        // Nếu kẻ địch gần mục tiêu, gọi hàm random tiếp
        if (distance <= 5) {
            console.log("Set new move target of enemy")
            this.moveEnemyToRandomPosition();
        } else {
            // Di chuyển kẻ địch
            let x = this.targetPosition.clone();
            let direction = x.subtract(this.node.position).normalize(); // Tính toán hướng
            let moveAmount = this.moveSpeed * dt; // Tính toán khoảng di chuyển trong frame hiện tại

            if (moveAmount > distance) {
                moveAmount = distance; // Điều chỉnh để không đi qua mục tiêu
            }

            // Cập nhật vị trí
            this.node.position = this.node.position.clone().add(direction.multiplyScalar(moveAmount));
        }
    }
}