unity physics相关
1.
With careful positioning and sizing, compound colliders can often approximate the shape of an object quite well
while keeping a low processor overhead. Further flexibility can be gained by having additional colliders on child objects
(eg, boxes can be rotated relative to the local axes of the parent object).When creating a compound collider like this,
there should only be one Rigidbody component, placed on the root object in the hierarchy.
如果通过子object达成组合式碰撞盒,刚体组件只能挂到根object上。
2.
In 3D, you can use Mesh Colliders to match the shape of the object’s mesh exactly.(当组合碰撞盒不好拼时用mesh colliders)
a good general rule is to use mesh colliders for scene geometry and approximate the shape of moving objects using compound primitive colliders.
mesh collider主要用来做场景碰撞盒,游戏中移动的实体应该用组合碰撞盒(其实一个胶囊体碰撞盒也差不多了)
3.
Colliders on an object that does have a Rigidbody are known as dynamic colliders.
Static colliders can interact with dynamic colliders but since they don’t have a Rigidbody, they will not move in response to collisions.
带刚体组件的碰撞体是动态碰撞体,不带是静态碰撞体,静态的可以被碰,但不会动,相当于一堵墙。动态的被碰会动。而如果一个刚体不带碰撞盒,则它不会与其他带碰撞体发生碰撞,简单讲,刚体是一个物体,加碰撞盒是给这个刚体能和其他碰撞盒进行交互,必须2组件都有的物体才能正常进入“物理世界”:没有碰撞盒则无法和其他物体交互,没有刚体的碰撞盒是静态的,算不上一个物理世界的物体,就像大地。
4.
Physics materials:一个physics object在碰撞时由于不同表面属性而不同表现,比如冰面很滑,橡皮很有弹性,这些都可以通过Physics materials设置。
一般每个Collider都有一个Material参数设置Physics materials。
5.
OnCollisionEnter 和 OnTriggerEnter 【需要测试一下rigidbody组件的影响】
Collider发生碰撞时,产生一个碰撞,并且挂在这个碰撞体的脚本的OnCollisionEnter将被调用:OnCollisionEnter (collisionInfo : Collision)
(在这个函数如果你不使用collisionInfo,删去collisionInfo参数以避免不必要的计算。注意,当其中至少一个碰撞盒附加非动力学刚体时碰撞事件才会发送)
如果这个Collider被设置为trigger:勾选Is Trigger,不产生碰撞,只调用OnTriggerEnter (other : Collider)
(注意,当其中至少一个碰撞盒附加刚体时trigger事件才会发送)
With normal, non-trigger collisions, there is an additional detail that at least one of the objects involved
must have a non-kinematic Rigidbody (ie, Is Kinematic must be switched off).
If both objects are kinematic Rigidbodies then OnCollisionEnter, etc, will not be called.
With trigger collisions, this restriction doesn’t apply.
(当其中至少一个碰撞盒附加非动力学刚体时碰撞事件才会发送)
测试发现,不带Rigidbody组件的碰撞盒可以算静态的,碰别人有问题,被碰一动不动;
带Kinematic rigidbody碰撞盒顾名思义必须来自自身的力量才能让它动,比如代码控制,碰别人正常,被碰一动不动(因为这是物理世界的力量)
带关闭Kinematic的rigidbody碰撞盒,物理世界的碰撞盒,也可以代码一起控制,碰别人正常,被碰就动。
官方文档说,不带rigidbody的碰撞体,千万不要让它动,会有问题的的。要动就用挂个Kinematic rigidbody
A Rigidbody component can be switched between normal and kinematic behavior at any time using the IsKinematic property.
(IsKinematic开关可以随时关闭开启,这里有一个重要应用就是“布娃娃系统”,正常行走开启,被抓起来扔出去或遇到剧烈碰撞就关闭
四肢都各自挂rigidbody组件,平时开IsKinematic,正常播动画,被踢飞出去等则关闭IsKinematic,让四肢表现得真实点)
unity physics相关的更多相关文章
- Unity UI相关总结
UIGrid 加载面板时,如果面板中含有大容量的 UIGrid,可能会很卡.我们可以只加载 UIGrid 的前 n 个单元格对象,在显示面板之后,利用协程加载剩余的所有单元格,每帧加载 m 个. 同样 ...
- unity开发相关环境(vs、MonoDevelop)windows平台编码问题
情景描述:最近在做Unity的网络底层,用VS编写源码,MonoDevelop用来Debug,在Flash Builder上搭建的Python做协议生成器,期间有无数次Unity莫名奇妙的的down掉 ...
- (转)unity开发相关环境(vs、MonoDevelop)windows平台编码问题
转自: http://www.cnblogs.com/sevenyuan/archive/2012/12/06/2805114.html 1.unity会爆出错误: There are inconsi ...
- [Unity Physics]Physics - Rigidbody、Collider
什么是Collider 碰撞器组件在Unity引擎中触发物理碰撞的最基本的条件. 可以这样说,假如一个游戏中没有物理碰撞系统是不可能的. 什么是Rigidbody 通过物理模拟的控制对象的位置. Ri ...
- [Unity Physics] Physics - Raycast
Class Variables类变量 gravity The gravity applied to all rigid bodies in the scene.场景中应用到所有刚性物体的重力. min ...
- Unity引擎相关知识UnityKnowledgeHyperlink
请简述Unity中的四种坐标系 http://liuqingwen.me/blog/2017/07/31/understanding-coordinate-system-in-unity3d/
- unity physics joint
除了unity文档(有点儿过于简略)之外,可以参考一下PhysX文档: http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/ ...
- Unity调试相关
1.LOG处理 将所有LOG信息写入到文件,并设置部分LOG显示到屏幕上,总结成以下脚本,将其挂载在摄像机上即可. using UnityEngine; using System.Collection ...
- Unity中Mesh分解与边缘高亮加上深度检测
一个比较简单的需求,不过遇到些坑,记录下. 房间有多个模型,每个模型可能多个SubMesh,点击后,需要能具体到是那个SubMesh,并且在这个SubMesh上显示边缘高光,以及能个性这单个SubMe ...
随机推荐
- 【HNOI2009】最小圈 题解(SPFA判负环+二分答案)
前言:模拟赛考试题,不会做,写了个爆搜滚蛋仍然保龄. --------------------- 题目链接 题目大意:给定一张有向图,求一个环,使得这个环的长度与这个环的大小(所含结点个数)的比值最小 ...
- Apache Hudi + AWS S3 + Athena实战
Apache Hudi在阿里巴巴集团.EMIS Health,LinkNovate,Tathastu.AI,腾讯,Uber内使用,并且由Amazon AWS EMR和Google云平台支持,最近Ama ...
- 【Python 实例】面向对象 | 请输入一周中某天的名称的第一个字母来判断以下是星期几,如果第一个字母一样则继续判断第二个字母
[Python 实例]面向对象 | 请输入一周中某天的名称的第一个字母来判断以下是星期几,如果第一个字母一样则继续判断第二个字母 题目: 解答: 运行结果: 题目: 请输入一周中某天的名称的第一个字母 ...
- Qt信号参数中使用QVariantList时编译问题
今天调试代码时遇到一个奇怪的问题,不过一般感觉比较奇怪的问题,最后查到原因时,原因都比较简单! 编译问题 先来看一下qt的编译错误,提示一堆错误: In file included from D:\Q ...
- Python解决网吧收费系统,远控网吧电脑设备!
python破解网吧收费系统,远控网吧电脑设备! 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更 ...
- Faiss流程与原理分析
1.Faiss简介 Faiss是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库.它包含多种搜索任意大 ...
- fetch封装
import {fetch as fetchPro} from "whatwg-fetch" import qs from "qs" const get=(ur ...
- 一篇夯实一个知识点系列--python实现十大排序算法
写在前面 排序是查找是算法中最重要的两个概念,我们大多数情况下都在进行查找和排序.科学家们穷尽努力,想使得排序和查找能够更加快速.本篇文章用Python实现十大排序算法. 干货儿 排序算法从不同维度可 ...
- Vue <script></script>区域使用filter过滤器
Vue中过滤器(filter)的功能高度提取,便于使用,前端小伙伴们使用的频率很高.但大多数都是在模板区域来使用. 如果要在脚本区域, 也就是来使用已经定义好过滤器功能,该如何去做呢? 难道需要在ut ...
- RNN以及LSTM简介
转载地址 https://blog.csdn.net/zhaojc1995/article/details/80572098 本文部分参考和摘录了以下文章,在此由衷感谢以下作者的分享! https:/ ...