1 什么是刚体
可以让一个节点受到物理影响并产生反应。
比如我们向空中抛一个沙包 ,这个沙包会受到重力和推力的作用形成一个抛物线,那我们如何让一个Dom节点也有这样的效果呢? 那么刚体就是用来做这个事情的,这个沙包就是一个刚体,
2 如何创建一个刚体
创建一个节点node ,在没给她任何组件的时候node节点就是一个普通的节点。当我们为该节点设置成刚体的时候该节点 具有物理运动的条件,
点击 属性检查器 下方的 添加组件 -> Physics -> RigidBody,即可添加刚体组件到节点上。
可以操作此刚体的一些方法来实现物理效果
3 刚体的简单API
import { _decorator, Component, Node, RigidBody, Vec3 } from 'cc';
const { ccclass, property } = _decorator;
const v3_0 = new Vec3(0, 5, 0);
const v3_0X = new Vec3(20, 10, 0);
@ccclass('Typescript001')
export class Typescript001 extends Component {
/**
* 刚体运动
*/
start() {
/**
* 获取刚体
*/
const rigidBody = this.getComponent(RigidBody);
/**
*
* 相对于刚体的质心的某点上对刚体施加作用力。
*/
// rigidBody?.applyForce(new Vec3(400, 200, 100));
/**
* 设置旋转速度
*/
// rigidBody?.setAngularVelocity(v3_0);
/**
* 设置线性速度
*/
rigidBody?.setLinearVelocity(v3_0X)
}
// update (deltaTime: number) {
// // [4]
// }
}
直接看源码 会发现里面的注释写的已经非常详细了,大家自己看着尝试体会一下,每个方法的效果
4 刚体对应的属性及说明
目前刚体类型包括 STATIC、DYNAMIC 和 KINEMATIC 三种。
- STATIC,表示静态刚体,可用于描述静止的建筑物,若物体需要持续运动,应设置为 KINEMATIC 类型;
- DYNAMIC,表示动力学刚体,能够受到力的作用,请通过物理规律来运动物体,并且请保证质量大于 0;
- KINEMATIC,表示运动学刚体,通常用于表达电梯这类平台运动的物体,请通过 Transfrom 控制物体运动;