无法正确显示脚本属性

新人上手的项目中出现的问题

  • Creator 版本:3.2.0

  • 目标平台:Mac

  • 重现方式:必现

点击create之后无法挂载Body节点

脚本也发一下

import { _decorator, Component, Node, Vec3, systemEvent, SystemEventType, SystemEvent, EventMouse } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('PlayerController')
export class PlayerController extends Component {
    // 是否接收到跳跃指令
    private _startJump: boolean = false;
    // 跳跃步长
    private _jumpStep: number = 0;
    // 当前跳跃时间
    private _curJumpTime: number = 0;
    // 每次跳跃时常
    private _jumpTime: number = 0.1;
    // 当前跳跃速度
    private _curJumpSpeed: number = 0;
    // 当前角色位置
    private _curPos: Vec3 = new Vec3();
    // 每次跳跃过程中,当前帧移动位置差
    private _deltaPos: Vec3 = new Vec3(0, 0, 0);
    // 角色目标位置
    private _targetPos: Vec3 = new Vec3();

    @property({ type: Animation })
    public BodyAnim: Animation | null = null;

    start() {
        // [3]
        systemEvent.on(SystemEvent.EventType.MOUSE_UP, this.onMouseUp, this);
    }

    onMouseUp(event: EventMouse) {
        if (event.getButton() === 0) {
            this.jumpByStep(1);
        }
        else if (event.getButton() === 2) {
            this.jumpByStep(2);
        }

    }

    jumpByStep(step: number) {
        if (this._startJump) {
            return;
        }
        this._startJump = true;
        this._jumpStep = step;
        this._curJumpTime = 0;
        this._curJumpSpeed = this._jumpStep / this._jumpTime;
        this.node.getPosition(this._curPos);
        Vec3.add(this._targetPos, this._curPos, new Vec3(this._jumpStep, 0, 0));
        if (this.BodyAnim) {
            if (step === 1) {
                this.BodyAnim.play('oneStep');
            } else if (step === 2) {
                this.BodyAnim.play('twoStep');
            }
        }
    }

    update(deltaTime: number) {
        if (this._startJump) {
            this._curJumpTime += deltaTime;
            if (this._curJumpTime > this._jumpTime) {
                // end
                this.node.setPosition(this._targetPos);
                this._startJump = false;
            } else {
                // tween
                this.node.getPosition(this._curPos);
                this._deltaPos.x = this._curJumpSpeed * deltaTime;
                Vec3.add(this._curPos, this._curPos, this._deltaPos);
                this.node.setPosition(this._curPos);
            }
        }
    }

}

这是编辑器的bug嘛 @jare

地形面板点击Dock之后也没有办法或者入口再让地形面板弹出

 @property({ type: Animation })
 public BodyAnim: Animation | null = null;

改成

 @property({ type: Animation })
 public BodyAnim: Animation = null!;

试试?

这样也是不行的

最上面import里是不是没加Animation

image 这个在3.0 需要手动加一下 才可以

1赞

嗯,是的,竟然没有自动导入 :astonished:

感谢 :kissing_heart:

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。