2D刚体

public class L14 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        //相关参数
        #region Type Dynamic 动态刚体
        //Dynamic 动态刚体
        //如果在刚体上设置了物理材质,子物体有碰撞器但没有设置材质则会应用父对象的刚体上的物理材质
        //物理材质使用优先级 1.2D碰撞器上指定的2D物理材质 2.2D刚体上指定的2D物理材质 3.Physics 2D窗口指定的2D默认物理材质

        //Simulated 如果希望2D刚体及其所有子对象2D碰撞器和2D关节都能模拟物理效果则需要启用该选项

        //Use Auto Mass 启用自动质量

        //Linear Drag 移动阻力系数
        //Angular Drag 旋转阻力系数
        //Gravity 重力系数

        //Collision Detection 碰撞检测算法
        //Discrete 离散,可能穿过
        //Continuous 连续,不会穿过

        //Sleeping Mode 睡眠模式
        //Never Sleep 从不
        //Start Awake 开始唤醒,静止睡眠
        //Start Asleep 开始睡眠,可以被碰撞唤醒

        //Interpolate 插值运算算法 
        //None 不应用
        //Interpolate 根据前一帧进行平滑处理
        //Extrapolate 根据后一帧进行平滑处理
        #endregion

        #region Kinematic 运动学
        //不会受力的影响,只能通过代码让其动起来,能和Dynamic 2D刚体产生碰撞,但是自身不会动,只会进入碰撞检测函数
        //Simulated 当启用时会充当一个无限质量的不可移动对象,可以和所有2D刚体产生碰撞
        //Use Ful Kinematic Contacts 启用后会和所有2D刚体碰撞,禁用后只会和Dynamic 2D刚体碰撞
        #endregion

        #region Static 静态刚体
        //完全不动的需要检测碰撞的对象
        //相当于是质量无限且不可移动的对象,只能和Dynamic 2D刚体碰撞
        //类似的有只加碰撞器而不加刚体的物体,它们会和刚体产生碰撞但自己不会产生运动
        #endregion

        //如何选择不同类型的刚体
        //Dynamic 受力的作用,能动能碰撞的对象
        //Kinematic 通过API移动的对象,不受力的作用但是想要碰撞检测
        //Static 不动也不受力的作用,但要跟Dynamic刚体进行碰撞检测

        //刚体API
        //加力
        Rigidbody2D rigid = GetComponent<Rigidbody2D>();
        rigid.AddForce(new Vector2(0, 100);
        //改速度
        rigid.velocity = new Vector2(1, 0);
    }
}
posted @ 2025-03-28 10:39  cannedmint  阅读(9)  评论(0)    收藏  举报