Unity 理解刚体(Rigidbody)和碰撞体(Collider)和触发器(Is Trigger)以及刚体休眠(Rigidbody Sleeping)
2015-08-27 00:05
525 查看
前言:
今天看到看到了 Rigidbody
Sleeping这个知识点,解决了我疑惑很久的一个物理学的问题。本来笔者遇到问题会想办法去解决的,但是那是想了蛮久也没想通为什么两个物体碰撞要发生碰撞的事件前提是运动的那个要有刚体,为什么没运动的物体带有刚体就不行?嘿嘿,今天Rigidbody
Sleeping解决了我这个问题。
进入主题:
虽然主题中有关于理解刚体(Rigidbody)和碰撞体(Collider)和触发器(Is Trigger),但是笔者在这里就不去讲解了,因为都很简单,这里给出晚上已经有的一篇关于他的理解,写的和能深刻,链接地址:http://blog.csdn.net/Monzart7an/article/details/22739421 ,其实在他的文章里,他对于我遇到的问题没有给出解释,在这里我接下来会详细解释下其原因。
下面这段话给出了解释:
Rigidbody sleeping happens completely automatically.
Whenever a rigidbody is slower than the sleepAngularVelocity and sleepVelocity it will start falling asleep. After a few frames of resting it will then be set to sleep. When the body is sleeping, no collision detection or simulation will be performed anymore.
This saves a lot of CPU cycles.
刚体休眠完全自动发生。只要刚体的速度低于sleepAngularVelocity和sleepVelocity,该刚体就会开始休眠。其空闲一些帧后,就会被设置成休眠状态。处于休眠状态中的物体,不会再对其进行碰撞检测和模拟。这会节约大量的CPU开销。
小小总结:
呵呵,知道原因了吗?原来是Unity对带了刚体的物体,但其速度低于sleepAngularVelocity和sleepVelocity这个时,就会自动处于休眠状态,不会再对其进行碰撞检测和模拟,是Unity优化了。这里sleepAngularVelocity和sleepVelocity两个值在(Edit
-> Project Settings -> Physics)中一般默认设置好低,自己也可以手动去改。
具体的刚体的休眠在什么情况下关闭和开启,圣典里讲的很详细,链接地址:http://game.ceeger.com/Components/RigidbodySleeping.html
最后的最后:
通过这次发现,有问题不要紧,因为问题总会有解决的办法。在遇到问题时,不要发大量时间一直去想,因为发了大量时间的你还没想出来的话,那么你的思维可能会禁锢在那个时刻,你可以先放下来,过几天再去想,也许,放下来之后就会在某个时间,解决方法就出现在你面前!嘿嘿,个人的经历罢了,希望大家不要吐槽哦!
今天看到看到了 Rigidbody
Sleeping这个知识点,解决了我疑惑很久的一个物理学的问题。本来笔者遇到问题会想办法去解决的,但是那是想了蛮久也没想通为什么两个物体碰撞要发生碰撞的事件前提是运动的那个要有刚体,为什么没运动的物体带有刚体就不行?嘿嘿,今天Rigidbody
Sleeping解决了我这个问题。
进入主题:
虽然主题中有关于理解刚体(Rigidbody)和碰撞体(Collider)和触发器(Is Trigger),但是笔者在这里就不去讲解了,因为都很简单,这里给出晚上已经有的一篇关于他的理解,写的和能深刻,链接地址:http://blog.csdn.net/Monzart7an/article/details/22739421 ,其实在他的文章里,他对于我遇到的问题没有给出解释,在这里我接下来会详细解释下其原因。
下面这段话给出了解释:
Rigidbody sleeping happens completely automatically.
Whenever a rigidbody is slower than the sleepAngularVelocity and sleepVelocity it will start falling asleep. After a few frames of resting it will then be set to sleep. When the body is sleeping, no collision detection or simulation will be performed anymore.
This saves a lot of CPU cycles.
刚体休眠完全自动发生。只要刚体的速度低于sleepAngularVelocity和sleepVelocity,该刚体就会开始休眠。其空闲一些帧后,就会被设置成休眠状态。处于休眠状态中的物体,不会再对其进行碰撞检测和模拟。这会节约大量的CPU开销。
小小总结:
呵呵,知道原因了吗?原来是Unity对带了刚体的物体,但其速度低于sleepAngularVelocity和sleepVelocity这个时,就会自动处于休眠状态,不会再对其进行碰撞检测和模拟,是Unity优化了。这里sleepAngularVelocity和sleepVelocity两个值在(Edit
-> Project Settings -> Physics)中一般默认设置好低,自己也可以手动去改。
具体的刚体的休眠在什么情况下关闭和开启,圣典里讲的很详细,链接地址:http://game.ceeger.com/Components/RigidbodySleeping.html
最后的最后:
通过这次发现,有问题不要紧,因为问题总会有解决的办法。在遇到问题时,不要发大量时间一直去想,因为发了大量时间的你还没想出来的话,那么你的思维可能会禁锢在那个时刻,你可以先放下来,过几天再去想,也许,放下来之后就会在某个时间,解决方法就出现在你面前!嘿嘿,个人的经历罢了,希望大家不要吐槽哦!
相关文章推荐
- unity3d dota 寻路
- Unity游戏开发中的对象池
- Unity3D 调用Android原生方法
- Unity3D之Quaternion学习与应用
- Unity中Instantiate物体失效问题
- Unity3D里Time时间体系的讲解与运用
- Unity Game Programming AI(2)有限状态机
- Unity—UGUI
- unity调用 安卓相册
- Unity Jonit(关节)
- Unity3d获得android和ios设备的唯一标识
- 【跟随】Kirill Muzykov大神 Unity UGUI(1)
- Unity接入移动MM支付(Android)
- Unity笔记 2D ROGUELIKE 实例详解
- Unity3D热更新全书-何谓热更新,为何热更新,如何热更新
- Unity Bug 修复系列
- Unity物体上下反复漂浮效果
- unity Kinect v2 with MS-SDK20绿屏抠像shader修改 透明背景
- 如果在 unity中滚动 3D 骰子
- Unity Game Programming AI(1)人工智能导论