关闭

unity3d中的物理系统

354人阅读 评论(0) 收藏 举报
分类:

单独:
Constant force恒力:
世界空间的力和物体空间的力。
向上漂用Y轴的世界空间力,向Z轴方向飞用物体空间的力??为什么。。

Rigidbody 刚体
通常概念中的刚体只有不形变,在unity中就是non-kinematic rigidbody
不会发生形变(rigidbody) 而且还受力(non-kinematic )
经常和collider组合使用。

Kinematic 和 non-kinematic 单个物体运动的属性
运动学(直接施加变换)还是受力学(直接施加力)。

Collider碰撞器(不是刚体)单个物体交互的属性
做碰撞检测。

组合:
Kinematic Rigidbodies 运动学刚体:
不受力,重力,碰撞的影响,只能够通过动画或者程序驱动。
可以和non-kinematic rigidbody刚体(unity中即rigidbody)交互。
交互例子:
1Kinematic Rigidbodies可以唤醒其他带collider的rigidbody
2 Kinematic Rigidbodies可以影响通过joint连接到他的rigidbody
2 可以对放在Kinematic Rigidbodies之上的rigidbody施加摩擦力。
除了摩擦力,还能施加其他的力么???碰撞的时候只是去唤醒碰撞检测,不会施加力过去么?character controller可以对碰撞的物体施加力。

运动学刚体例子:
1角色正常情况下是运动学刚体(不受力,只受程序或者动画控制),挂的时候变成非运动学刚体(受力的作用)。正常角色变成ragdoll。
2 一个移动的物体可以推动别的物体,但是自己不会被推动。放东西的,且拥有动画的平台
3 通常用于移动的平台,或者动画一个带有hingejoint的刚体(non-kinematic rigidbody)。

GameObject:通过力或者扭矩(rigidbody)操作,通过Transform(kinematic rigidbody)。只能之一,互斥。

Character controller角色控制器
属性:
仅仅是一个有着capsule包装的collider。
是kinematic rigidbody,自己不受力的影响,但是可以施加力给其他的non-kinematic rigidbody。
总是垂直Y轴,可以延墙走,走上台阶,走上斜坡。

使用:
如果增加rigidbody,表现会很奇怪。
Character controller需要推动其他的刚体,需要其他刚体call OnControllerColliderHit。

据官方文档说给FPS/TPS做游戏主角用。
Player:
1如果不需要物理影响,可以用Character controller
2如果需要物理印象,用rigidbody + collider
NPC一般都不太用。NPC一般都用kinematic rigidbody + collider去实现人物角色。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6452次
    • 积分:188
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档