unity——Rigidbody类
转载自 http://hi.baidu.com/quibos/item/0b035e15e63041b499ce33d8
游戏对象添加Rigidbody组件后即具备物理属性,当其受力和扭矩影响时可产生更加真实的行为。当操作刚体参数的时候,你应该在FixedUpdate 函数中使用它,物理模拟以离散的时间步执行。FixedUpdate函数在每一步之前被立即调用。使用刚体时应注意,父物体和子物体不应同时具有刚体,也 不应该缩放刚体的父级。
变量:
var velocity : Vector3 刚体的速度向量
var angularVelocity : Vector3 刚体的角速度向量。
var drag : float 物体的阻力
var angularDrag : float 物体的角阻力
var mass : float 刚体的质量
var useGravity : bool 是否受重力影响
var isKinematic : bool
是否是运动学刚体。运动学刚体不受力、碰撞或关节控制,完全由动画或代码(Transform)驱动,但运动学刚体可以通过碰撞或关节影响其他刚体的运动。非运动学刚体则受力、碰撞或关节控制。
var freezeRotation : bool 冻结旋转,使物理因素不能改变物体的旋转
var collisionDetectionMode :CollisionDetectionMode
刚 体的碰撞检测模式。为了获得最佳效果,对于快速移动的物体,应设置动态连续碰撞检测模式(ContinuousDynamic),以防止物体还没检测到碰 撞就穿越了被碰撞物体;对于被碰撞物体,应设置连续碰撞检测模式(Continuous,连续碰撞检测是基于网格几何体的静态碰撞)。由于碰撞检测模式的 选择对物理性能有很大的影响,默认情况下,应采用非连续碰撞检测模式(Discrete)。
var centerOfMass : Vector3
重心。如果你不在脚本中设置重心,它将从所有附加到刚体上的碰撞器自动计算。重心的设置关系到物理运动的真实性。
var worldCenterOfMass : Vector3 在世界坐标中刚体的重心。(只读)
var detectCollisions : bool 碰撞检测是否启用(默认总是启用的)。
var position : Vector3
刚体的位置,只在物理步结束才应用到变换,不能用于连续移动。
var rotation : Quaternion 刚体的旋转,只在物理步结束才应用到变换,不能用于连续旋转。
var interpolation : RigidbodyInterpolation
刚体插值,用以平滑物理运动的显示效果,默认是关闭的(None)。物理运动以离散的时间步运行,而显卡以可变的帧率渲染,这可能导致物体抖动。对于主角或相机跟随的物体,建议使用插值。
函数:
移动
function AddForce (force : Vector3, mode :ForceMode = ForceMode.Force) : void
添加一个力到刚体。作为结果刚体将开始移动。
枚举类型ForceMode
值: Force 添加一个可持续力到刚体,使用它的质量。
Acceleration 添加一个可持续加速度到刚体,忽略它的质量。
Impulse 添加一个瞬间冲击力到刚体,使用它的质量。
VelocityChange 添加一个瞬间速度变化给刚体,忽略它的质量。
function AddForce (x : float, y : float, z: float, mode : ForceMode = ForceMode.Force) : void
添加一个力到刚体。作为结果刚体将开始移动。
function AddRelativeForce (force : Vector3,mode : ForceMode = ForceMode.Force) : void
添加一个力到刚体。相对于本地坐标。
function AddRelativeForce (x : float, y :float, z : float, mode : ForceMode = ForceMode.Force) : void
添加一个力到刚体。相对于本地坐标。
function MovePosition (position : Vector3): void
移动刚体到position。
旋转
function AddTorque (torque : Vector3, mode: ForceMode = ForceMode.Force) : void
添加一个转矩到刚体。作为结果刚体将绕着torque轴旋转,torque的长度决定转速。
function AddTorque (x : float, y : float, z: float, mode : ForceMode = ForceMode.Force) : void
添加一个转矩到刚体。作为结果刚体将绕着torque轴旋转,torque的长度决定转速。
function AddRelativeTorque (torque :Vector3, mode : ForceMode = ForceMode.Force) : void
添加一个转矩到刚体,相对于本地坐标。
function AddRelativeTorque (x : float, y :float, z : float, mode : ForceMode = ForceMode.Force) : void
添加一个转矩到刚体,相对于本地坐标。
function MoveRotation (rot : Quaternion) :void
旋转刚体到rot。
向物体表面施加力
function AddForceAtPosition (force :Vector3, position : Vector3, mode : ForceMode = ForceMode.Force) : void
在position位置应用force力。作为结果这个将在这个物体上应用一个力矩和力。为了效果的真实性,position的位置应在刚体的表面。
爆炸
function AddExplosionForce (explosionForce: float, explosionPosition : Vector3, explosionRadius : float, upwardsModifier: float = 0.0F, mode :ForceMode = ForceMode.Force) : void
应用一个力到刚体来模拟爆炸效果。爆炸力将随着到刚体的距离线形衰减。
explosionForce 爆破力
explosionPosition 爆炸位置
explosionRadius 爆破半径,为0时表示无穷大
upwardsModifier 可以理解为爆炸产生的向上冲击波的衰减值。值越大,威力越小。
function ClosestPointOnBounds (position :Vector3) : Vector3
计算刚体表面离position最近的点。可用于计算作用到刚体表面上一个点的爆炸力。
获取速度
function GetRelativePointVelocity(relativePoint : Vector3) : Vector3
获取刚体上的点相对本地坐标系的速度。获取的速度有考虑刚体的角速度。
function GetPointVelocity (worldPoint :Vector3) : Vector3
获取刚体上的点相对世界坐标系的速度。获取的速度有考虑刚体的角速度。
休眠
function Sleep () : void
强制一个刚体休眠至少一帧。刚体休眠有利于性能优化
function IsSleeping () : bool
判断刚体是否在休眠
function WakeUp () : void
强制唤醒一个刚体
碰撞扫描
function SweepTest (direction : Vector3,out hitInfo : RaycastHit, distance : float = Mathf.Infinity) : bool
碰撞扫描,返回是否将要发生碰撞。
direction 扫描方向
hitInfo 如果将要发生碰撞(即返回true),hitInfo将包含更多碰撞信息
distance 扫描长度
function SweepTestAll (direction : Vector3,distance : float = Mathf.Infinity) : RaycastHit[]
碰撞扫描,返回所有碰撞点。
相关推荐
Unity——VideoPlayer完整运行实例,包括Url播放和本地视频播放,及大部分VideoPlayer的API接口实现。
UniWebView是用于移动Unity3D游戏的现代Web视图组件。将网页内容集成到游戏中从未如此简单。
Unity3D脚本:rigidbody解除休眠 Posted on 2013年01月28日 by U3d / Unity3D脚本/插件/被围观 248 次 ri
Excel.dll EPPlus.dll ICSharpCode.SharpZipLib.dll System.Data.dll
Unity 物理引擎 - 刚体球的碰撞设计
主要是怎么给刚体添加作用力,使之达到我们想要的效果!
Unity教程:如何取消附加的刚体组件 Posted on 2013年02月06日 by U3d / Unity3D脚本/插件/被围观 239 次 Unity教
Unity进阶——动画系统资源包;Unity进阶——动画系统资源包
Unity插件——SRDebugger V1.9.0下载
Unity多人网络联机游戏API Mirror学习 ,仅提供借鉴学习(不支持商用模块呦,商用请慎重)
一共有两份,这是第一份。 Unity3D——贴花.part1 Unity3D——贴花.part1
unity_toggle,模仿toggle的效果来做的一个升级版的界面,功能就跟toggle一样,一个多选框只能选一个的作用,
Unity插件——Odin V3.5
Unity3D——射击游戏
Unity插件——Best HTTP 封装好的网络插件,节省自己写http的时间
刚体 我自己在Unity(C#)中的刚体行为模拟
Unity3d 拳皇类大型3D格斗游戏源码 街机对战游戏项目 整个项目的完整压缩包 , 直接打开就行 , 无需其他操作 适合二次开发和学习使用 , 如果有问题请切换编译器 或者下载最新编译器 Unity街机游戏源码 Unity3d 拳皇...
一共有两部份,这是第二部份。。Unity3D——贴花 第一部份在2010/11/26这天上传的是有效的。
unity插件,制作文字冒险类游戏用插件 tip:仅支持unity2018以下版本