Bootstrap

cocos creator 3.8 物理碰撞器Collider+刚体RigidBody 8

遇到一个朋友,你来就行的朋友,我过去了,管吃管住,这样的朋友真的很难求。

最近离职了,很难想象,一份策划书一天能给你改n次,一周能郁闷,上一个功能没搞完,让你搞下一个功能。

于是去散心了,三亚确实很美。

**************************************************************************************************************

//1、官方定义 刚体是组成物理世界的基本对象,可以将刚体想象成一个你不能看到(绘制)也不能摸到(碰撞)的且不能变形的物体。

//也就是在物理世界中,发生的各种物理运动,比如碰撞、受力等情况下,形状不会发生改变。

//分类: 静态 运动学【变换信息操控】 动力学【改变物理数值】

//项目设置--->物理---> y -10 这个重力加速度

//是否允许休眠 刚体休眠状态下,不参加运算,被动唤醒后,才会加入运算。

//进入休眠的默认速度临界值 休眠状态下 线性速度与角速度趋近于0[毕竟是浮点值]

//是否开启自动模拟 物理世界中的各种变化将会被迭代

//每步模拟消耗的固定时间 fixedUpdate?cocos没这个周期函数 大概是修正不同帧率的下的每一次迭代时间间隔的

//每步模拟的最大子步数 不懂就默认

//碰撞矩阵 竖着的是分组 横的是掩码 分组就是: 1<<index  掩码看不懂,咱看分组就行

//2、物理碰撞器+碰撞组件

//Physic 与 Physic2D 物理碰撞器

//Collider

//Material:Collider上可以绑定物理材质

//点击资源管理器,右键创建物理材质PhysicsMaterial

//Is Trigger 只有碰撞检测,没有物理上的一些运动,就是直接穿透,常用做传送门、掉落道具、开关等

//性能上 圆形、球体大于其它的【可能会有穿透,需要各种代码的加成去避免被穿透】

//3、RigidBody 我没找到如何对范围的编辑哎

//现在的分组信息是加在刚体上的,所以单独的碰撞器就不要想那些分组计算了

// 静态

// 运动学【变换信息操控】重力、线性速度与角速度,弹力等需要物理材质支持

// 动力学【改变物理数值】通过代码改变状态,修改Transform

//遇到一个问题,我创建的物理材质没起作用,不知道是哪里没设置,还是什么情况

//dynamic 类型也没改错 测试效果都有

    private cubebody: RigidBody = null!;
    //测试一下3D下的刚体属性
    start() {
        this.cubebody = this.node.getComponent(RigidBody);
        //力 牛顿  F Ft Fs
        this.cubebody.applyForce(v3(3, 0, 0));
        //m/s
        this.cubebody.setLinearVelocity(v3(3, 0, 0));
        //围绕那个轴旋转 单位是弧度 Math.PI
        this.cubebody.setAngularVelocity(v3(0, 45, 0));
    }


    //模仿fixedUpdate
    //固定帧计时
    private _now_time = 0;
    //固定帧时间
    private frameTime = 0.016;
    update(deltaTime: number) {
        this._now_time += deltaTime;
        while (this._now_time >= this.frameTime) {
            //迭代逻辑
            this.childUpdate(this.frameTime);
            this._now_time -= this.frameTime;
        }
    }

    childUpdate(deltaTime: number) {

    }

;