setPosition无效

import { _decorator, Component, Vec3, input, Input, KeyCode, EventKeyboard } from ‘cc’;
const { ccclass, property } = _decorator;

@ccclass(‘PlayerController’)
export class PlayerController extends Component {

@property({ type: Component }) // 通过属性面板传入 player 对象
player: Component | null = null;

private direction: number = 1; // 移动方向:1 表示向前,-1 表示向后
private moveSpeed: number = 10; // 移动速度:每秒 10 像素

start() {
    console.log("PlayerController 脚本已加载");

    // 监听键盘按下事件
    input.on(Input.EventType.KEY_DOWN, this.onKeyDown, this);
}

update(deltaTime: number) {
    if (!this.player) {
        console.error("Player 未设置");
        return;
    }

    // 计算移动距离
    const moveDistance = this.direction * this.moveSpeed * deltaTime;

    // 计算新位置
    let newPos = this.player.node.position.add(new Vec3(moveDistance, 0, 0));

    // 更新位置
    this.player.node.setPosition(newPos);
}

onKeyDown(event: EventKeyboard) {
    if (event.keyCode === KeyCode.SPACE) { // 假设按下空格键
        console.log("按下按钮,改变移动方向");

        // 改变移动方向
        this.direction *= -1;
    }
}

onDestroy() {
    // 取消键盘事件监听
    input.off(Input.EventType.KEY_DOWN, this.onKeyDown, this);
}

}
就是简单的每秒朝前移动10像素,但是就是不会动,脚本都挂载好了,项目是新建的,没有多余的东西,就是在canvas下创建一个单色精灵,然后把脚本挂载上去,player设置成那个单色精灵,但是就不是不会动,有知道哪里出问题的吗


你先这样写试试

385中有修复