unity刚体碰撞会抖抖动问题如何解决

Unity 刚体组件和碰撞器 - 简书
Unity 刚体组件和碰撞器
一,刚体组件
Paste_Image.png
ADD添加刚体组件
Paste_Image.png
刚体一种组件,可让物理模拟现实物体的运动状态,添加刚体后物体将受重力影响,并可以与其他物体碰撞。
参数说明?Mass 质量?Drag 位移阻力?Angular Drag 角阻力(旋转阻力)?Use Gravity 是否受重力影响
Is Kinematic 是否为运动学刚体?Interpolate 平滑物理运行的插值类型(枚举)?Collision Detection 碰撞检测方式(枚举)?Constraits 冻结位置和旋转
1)普通刚体(影响自己,也能影响其它刚体)
?2)运动学刚体(Is Kinematic 为True,自己不受物理引擎影响,但是影响其它刚体)
1)不应该父子同时具有刚体?
2)不应该缩放刚体的父级
二,碰撞器
Paste_Image.png
特定碰撞器
Static Collider 静态碰撞器?没有附加刚体而附加了碰撞器的游戏对象。这类对象会保持静止或者很轻微的移动。对于环境模型十分好用,当和刚体碰撞时而不会移动。
Rigidbody Collider 刚体碰撞器?同时附加了刚体和碰撞器的游戏对象。通过脚本的力量和碰撞完全受物理引擎的影响。
Kinematic Rigidbody Collider 运动学刚体碰撞器?同时包含碰撞器和刚体,并且激活IsKinematic的一类游戏对象,要移动这类游戏对象,要修改它的Transform组件,而不是用力。它们很像静态碰撞器不过对于想要不停地到处移动的碰撞器很好用
碰撞器与刚体的关系
碰撞器(Collider)不需要刚体(Rigidbody)
刚体(Rigidbody)要发生碰撞,一定需要碰撞器(Collider)
碰撞器决定了碰撞发生时的边界条件
刚体决定了碰撞发生后的物体的运动效果
伏久者,飞必高;开先者,谢独早。
http://www.maiziedu.com/course/540/ 组件教程 prefabs教程http://www.maiziedu.com/course/642-9396/ 我们前面讲了很多的基础知识,最近一直很忙,很久没出基础系列的教程了。在今后的一段时间了我尽量...
111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画-&点缓存-&关键帧 112. [动画]Unity引擎Mecanim动画系统功能优点? 答: l 简单化对类人角色动画设计与功能实现的工作流程。 l Mecanim动画系统使用一个可视化编程工具来管理动画之间...
首先要熟悉一些基本的力学名词及相关公式 刚体(Rigidbody):刚体是指在运动中和受到力的作用后,形状和大小不变,而且内部各点的相对位置不变的物体。绝对刚体实际上是不存在的,刚体是力学中的一个科学抽象概念,即理想模型。力(F):力是物体对物体的作用,力不能脱离物体而单独...
ContinuousDynamic---只对Discrete的刚体使用Discrete检测,对其他任何刚体或者静态物体都使用Continuous检测. 要点:Continuous和ContinuousDynamic都会对静态物体使用Continuous检测. 在使用的时候,...
什么是碰撞器? 描述了物体可被碰撞的边界,以及碰撞过程中相互影响效果。碰撞效果:两个游戏对象碰在一起,通过物理引擎产生类似现实的效果 碰撞器的种类: 1、盒碰撞器(Box Collider)2、椭圆碰撞器(Sphere Collider)3、胶囊碰撞器(Capsule Co...
大家好,我叫杨洁义,今年42岁了,身高161cm。在这里跟大家分享一下我的故事!下图就是吃饭减肥,完美蜕变的对比照。我坚信最简单的整容方法就是减肥!! 我一直以来都是一个特别爱美的女孩,在还没有结婚生孩子以前就不胖,只有95斤,当我结婚生了两个小孩后一下长到了138...
首先回答一个问题:为什么要学习网络营销?答案很简单,因为这是一种工具。 既然是一种工具,那就按照之前《如何阅读一本书》的理论来进行理解,首先要回答的问题是:本书整体内容是什么? 本书作者江礼坤,10年网络推广经验,“推一把”创始人。由于本书出版于日,更多的是...
一、准备工作 全局安装 vue-cli$ npm install --global vue-cli创建一个基于 webpack 模板的新项目$ vue init webpack my-project cmd窗口会有如下提示:依次回车4次 y n n n cmd操作命令,点击...
每个人都是彩色的卓别林
我走过的路,经历过的事,遇见过的人,一直被我妥帖收藏在心底,它们于芸芸众生而言,也许是众生中微小的存在,但是对我而言,是最珍贵的宝藏。 2014年去阿坝州,看过的风景,遇见的人,经历的事,是我一生中最收藏的最璀璨最耀眼的宝藏。 它们不轰轰烈烈,甚至平凡而微小,但是它们有着震...Unity刚体穿透问题测试以及解决-腾讯游戏学院unity3d游戏开发之风力区域、碰撞、刚体等_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
unity3d游戏开发之风力区域、碰撞、刚体等
&&unity3d游戏开发之风力区域、碰撞、刚体等
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩4页未读,
定制HR最喜欢的简历
你可能喜欢unity怎么让刚体不发生碰撞,直接穿过去_百度知道
unity怎么让刚体不发生碰撞,直接穿过去
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:571
获赞数:759
勾选碰撞器上的Trigger
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。碰撞器一般都用作触发器而用,刚体一般用作真实碰撞。
静态对撞机:一个对象有对撞机组件,没有刚体组件。 这种情况在场景中的静态物体应用较多,比如墙体,房屋等静止不动的物体。 物理引擎假设静态对撞机是不会被移动的,所以不要尝试移动他们。 否则会产生性能开销,或者引发一个错误。 静态对撞机是不能“唤醒”刚体的。 如果真的想移动对象的话,就给他添加一个刚体组件。
刚体对撞机:一个对象有对撞机组件,而且有刚体组件。(no-kinematic) 这个对象既可以参与碰撞检测,也可以受到物理力的影响。 运动学刚体对撞机:一个对象有对撞机组件,有刚体组件,而且勾选了is kinematic。
什么是对撞机? 1. 对撞机组件定义对象形态上的物理碰撞. 2. 不可见的对撞机不需要与对象的网格, 具有完全相同的形状 3. 事实上,粗略的近似通常在游戏中更有效率和不可区分。
1. 最简单(最少的处理器密集型)碰撞器是所谓的原始对撞机类型 2. 在3D中,这些是箱子对撞机,球体对撞机和胶囊对撞机 3. 在2D中,您可以使用Box Collider 2D和Circle Collider 2D 4. 单个对象可以添加任意数量的这些对撞机 , 以创建复合碰撞器。 5. 通过仔细的定位和调整大小,复合碰撞器通常可以很好地逼近对象的形状,同时保持较低的处理器开销。 6. 通过在子对象上增加碰撞器可以获得更多的灵活性(例如,盒子可以相对于父对象的局部轴线旋转)
7. 当创建这样的复合对撞机时,应该只有一个Rigidbody刚体组件放置在层次结构中的根对象上。
请注意,原始碰撞器在transform变换中无法正常工作 -
这意味着如果在transform转换层次结构中使用旋转和非均匀尺度的组合, 以使生成的形状不再匹配原始形状,则原始对撞机不会能够正确地表示它。
然而,在某些情况下,甚至复合对撞机也不够准确。 在3D中,您可以使用Mesh Colliders网格碰撞器来精确匹配对象网格的形状。 在2D中,多边形对撞机2D通常不会完美匹配sprite图形的形状, 但您可以将形状细化到任何您喜欢的细节水平。 然而,这些对撞机的处理器密度要比原始类型多得多,所以请谨慎使用它们来保持良好的性能
此外,网格碰撞机通常不能与另一个网格碰撞机碰撞(即,当它们接触时不会发生任何事情)。 在某些情况下,您可以通过在检查器中将网格对撞机标记为凸面来解决此问题. 这将产生一个像“原始网格”一样的“凸包”的对撞形状,其中填充有任何底切.
这样做的好处是,一个凸起的网格对撞机可以与其他网格对撞机相撞, 这样您就可以使用这个特征当您具有适合形状的移动角色时。 然而,一个很好的一般规则是使用网格碰撞器进行场景几何,并使用复合原语对撞机近似移动对象的形状。
1. 可以将对角线添加到没有Rigidbody组件的对象上,以创建场景的楼层,墙壁和其他不动的元素。
这些被称为静态对照。
一般来说,您不应该通过更改“变换”位置重新定位静态对齐框架,因为这将严重影响物理引擎的性能。
一个对象上对撞机确实具有刚体被称为动态撞机。
静态对撞机可以与动态碰撞器进行交互,但是由于它们没有刚体,所以它们不会响应碰撞而移动。
"没有刚体的对撞机 碰撞时不会发生移动"
物理材料 Physics materials
1. 当碰撞者相互作用时,他们的表面需要模拟他们应该表示的材料的属性 2. 例如,一片冰将会滑动,而橡胶球会提供大量的摩擦力并且非常有弹性。
获得正确的参数可能涉及到一些尝试和错误,但冰材料,
例如将具有零(或非常低)的摩擦力和具有高摩擦力和接近完美的波峰的橡胶材料。
触发器 Triggers
触发器: 检测对象何时发生碰撞. 触发器只是碰撞器身上的一个属性,碰撞器是触发器的载体。
1. 脚本系统可以检测何时发生碰撞冲突,并使用该OnCollisionEnter功能启动操作 2. 也可以简单地使用物理引擎来检测何时一个对撞机进入另一个的空间而不产生碰撞冲突 3. 配置为触发器的对撞机(使用Is Trigger属性)不表现为固体对象,只允许其他碰撞器通过。 4. 当碰撞器进入其空间时,触发器将调用OnTriggerEnter触发器对象的脚本上的函数。
碰撞时采取的脚本动作 Script actions taken on collision
1. 当发生碰撞时,物理引擎会在附加到所涉及对象的任何脚本上调用具有特定名称的功能。 2. 可以在这些功能中放置任何您喜欢的代码来应对碰撞事件。 3. 例如,当汽车碰到障碍物时,您可能会发生碰撞音效。
1. 在检测到碰撞的第一个物理更新中,OnCollisionEnter调用该函数。 2. 在维护接触关联的更新期间,OnCollisionStay被调用, 3. 最后OnCollisionExit指出接触关联已被破坏。 4. 触发对撞机调用类似OnTriggerEnter,OnTriggerStay和OnTriggerExit功能 5. 对于2D物理,具有附加到名称的2D的等效功能,例如OnCollisionEnter2D
1. 对于正常的非触发碰撞,还有一个额外的细节, 2. 所涉及的对象中至少有一个必须具有非运动学刚体(即运动学必须关闭)。 3. 如果两个对象都是运动刚体,那么OnCollisionEnter就不会被调用 4. 触发碰撞时,这种限制不适用,因此运动学和非运动学刚体都将OnTriggerEnter在进入触发对撞机时
对撞机互动 Collider interactions
1. 根据他们的Rigidbody组件的配置方式,碰撞器会相互影响。 2. 三个重要的配置是静态碰撞器(即,根本没有连接刚体),刚体对撞机和运动刚体对撞机。
静态对撞机 Static Collider /*静态对撞机: 具有对撞机但没有刚体的GameObject。*/
静态对撞机用于水平几何,它始终保持在同一个地方,永远不会移动。 进入的刚体物体将与静态碰撞器碰撞,但不会移动。
物理引擎假设静态对撞机不会移动或改变,并可以根据这一假设进行有用的优化。 因此,在游戏过程中不应禁用/启用,移动或缩放静态对撞机。 如果您更改了静态对撞机,那么这将导致物理引擎的额外的内部重新计算,导致性能下降。 更糟糕的是,这些变化有时可能使对撞机处于产生错误物理计算的未定义状态。 例如,针对改变的静态对撞机的射线可能无法检测到,或者在空间中的随机位置检测它。 此外,由移动的静态对撞机击中的刚体不一定是“唤醒”,静态对撞机不会施加任何摩擦。 由于这些原因,只有刚体对撞机才能改变。 如果您想要一个不受传入刚体影响但仍可以从脚本中移动的对撞机对象,
则应将运动学刚体组件附加到它, 而不是根本没有刚体。
刚体对撞机 Rigidbody Collider /*刚体对撞机: 具有对撞机和非运动学正常刚体的GameObject。*/ 刚体对撞机
= Collider+ (no-Kinematic Rigidbody GameObject)
1. 这是一个具有对撞机和正常的非运动学刚体的GameObject。 2. 刚体对撞机由物理引擎完全模拟,并可以对从脚本应用的碰撞和力量做出反应。 3. 它们可能与其他物体(包括静态碰撞器)发生碰撞,并且是使用物理学的游戏中最常用的对撞机配置。
运动刚体对撞机 Kinematic Rigidbody Collider /*运动刚体对撞机: 具有对撞机和运动学刚体的 GameObject(即,刚体的IsKinematic属性已启用)*/ 运动刚体对撞机
= Collider+ ( IsKinematic Rigidbody GameObject)
1. 这是一个具有对撞机和运动学刚体的 GameObject(即,刚体的IsKinematic属性已启用)。 2. 您可以通过修改其转换组件从脚本移动运动刚体对象,但不会像非运动学刚体那样响应碰撞和力。 3. 运动刚体应该用于可以偶尔移动或禁用/启用的碰撞器,但是否则应该像静态碰撞器一样。 4. 一个例子是一个滑动门,通常应作为一个不动的物理障碍,但必要时可以打开。 5. 与静态碰撞器不同,移动的运动刚体会将摩擦力与其他物体相互碰撞,并在接触时“唤醒”其他刚体。
1. 即使不动,运动刚体碰撞器与静态碰撞物具有不同的行为。 2. 例如,如果将碰撞器设置为触发器,那么您还需要向其添加一个刚体,以便在脚本中接收触发事件。 3. 如果您不希望触发器具有重力或受物理影响,则可以在其刚体上设置IsKinematic属性。
4. 使用IsKinematic属性,可以随时在正常和运动行为之间切换Rigidbody组件。
一个常见的例子是“抹布”效果,其中角色通常在动画下移动,但是由于爆炸或重型碰撞而物理地投掷。 默认情况下,角色的肢体每个都可以被赋予自己的刚体组件,并启用IsKinematic。 肢体将通过动画正常移动,直到IsKinematic关闭所有它们,并立即表现为物理对象。 在这一点上,一个碰撞或爆炸力将以令人信服的方式将四肢的飞翔发出。
碰撞动作矩阵 Collision action matrix 当两个对象碰撞时,可能会发生许多不同的脚本事件,这取决于碰撞对象的刚体的配置。 下面的图表基于附加到对象的组件来提供哪些事件功能被调用的细节。 一些组合只会导致两个对象中的一个受碰撞影响,但通常的规则是物理不会应用于没有连接刚体部件的对象。
物体发生碰撞的必要条件? 答:需要检测碰撞的物体身上存在刚体组件(或被检测物体),也要碰撞器collider
Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。
Reset——& Awake——&Start——&Update——&FixedUpdate——&LateUpdate——&OnGUI——&OnDisable——&OnDestroy
角色控制器The Character Controller is mainly used for third-person or first-person player control that does not make use of Rigidbody physics.角色控制器 : 主要用于第三人称或第一人称的播放器控制,不使用刚体物理。 Slope Limit -- 坡度限制--- 限制对撞机仅能爬低于此坡度限制的斜坡.Step Offset -- 台阶偏移---角色将迈上台阶,当此显示值,更接近地面, 此值不能大于角色控制器的高度,否则会出现错误.Skin width – 皮肤宽度 --- 两个碰撞物可以穿透彼此的皮肤宽度, / 较大的皮肤宽度可减少抖动. 低于皮肤宽度可能导致角色卡住. / 一个好的设置是使这个值达到半径的10%Min Move Distance – 最小移动距离 --- 低于此值,角色更本不会动,最好设置为0.Center – 中心 – 这将偏移世界空间中的胶囊对撞机,不会影响角色的转动Radius – 半径 -- 胶囊对撞机半径的长度, 这基本上是对撞机的宽度Height --- 高度 – 胶囊对撞机的高度. 改变它将沿着Y轴在正向和负向两个方向缩放对撞机。 胶囊形的对撞机,可以告诉你从一个脚本沿某个方向移动。然后,控制器将执行运动,但受碰撞约束。它将沿着墙壁滑行,走上楼梯(如果它们低于阶梯偏移),并在斜坡限制内的斜坡上行走。控制器本身并不会对力量作出反应,也不会自动将刚体推离如果要使用角色控制器推送刚体或对象,则可以通过脚本将强制应用于与OnControllerColliderHit()函数相撞的任何对象。另一方面,如果你想让你的玩家角色受物理影响,那么你最好不要使用Rigidbody而不是角色控制器。Fine-tuning your character 微调你的角色可以修改Height和Radius以适应您的Character的网格。建议总是使用大约2米的人类角色。您还可以修改胶囊的中心,以防止您的枢轴点不在字符的确切中心。步进偏移也可以影响这一点,确保对于2米尺寸的人来说,该值在0.1和0.4之间
阅读(...) 评论()}

我要回帖

更多关于 unity刚体碰撞反弹 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信