您的位置:首页 > 移动开发 > Unity3D

unity3d中的物理系统

2015-07-07 21:48 459 查看
单独:

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去实现人物角色。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: