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 ...
随机推荐
- 深入了解Redis(1)-字符串底层实现
一.简单动态字符串(SDS) Redis中字符串实现有两种方式,C语言传统字符串(以空字符结尾的字符数组)和简单动态字符串(SDS),并将SDS作为默认字符串表示. C字符串只会作为字符串字面量,用在 ...
- 面经手册 · 第2篇《数据结构,HashCode为什么使用31作为乘数?》
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 在面经手册的前两篇介绍了<面试官都问我啥>和<认知自己的技术栈盲区 ...
- 谈谈Nginx和php之间是交互与通信的方式
Nginx是俄国人最早开发的Webserver,现在已经风靡全球,相信大家并不陌生.PHP也通过二十多年的发展来到了7系列版本,更加关注性能.这对搭档在最近这些年,叱咤风云,基本上LNMP成了当下的标 ...
- CSS漂亮盒子(上)
HTML文档中的所有元素都是由矩形盒子构成的--不管是包含页面结构的容器元素,还是段落中的每行文本,归根结底都是盒子. 1.背景颜色 设置页面背景颜色. body { background-color ...
- java_Collection、Map、泛型的使用
Collection集合 集合按照其存储结构可以分为两大类,分别是 单列集合 java.util.Collection 双列集合 java.util.Map Collection:单列集合类的根接口, ...
- [深度学习] Pytorch学习(二)—— torch.nn 实践:训练分类器(含多GPU训练CPU加载预测的使用方法)
Learn From: Pytroch 官方Tutorials Pytorch 官方文档 环境:python3.6 CUDA10 pytorch1.3 vscode+jupyter扩展 #%% #%% ...
- 【Gin-API系列】配置文件和数据库操作(三)
我们前面已经实现了API的基础版本,能对参数校验和返回指定数据,这一章,我们将对主机和交换机进行建模,存入数据库. 考虑到数据库安装和使用的简便性,我们采用文档存储结构的MongoDB数据库. Mon ...
- keil 5.29 无法找到 flash的算法文件
安装5.29之后,发现编译文件可以,但是Debuger下的flash download找不到对应的flash文件 解决, 重新 安装keil5.29时,PACK的目录选择安装在Keil同级目录下的AR ...
- Mac开发工具
便捷管理你的Mac App Homebrew:https://brew.sh/index_zh-cn 强大的文本编辑器 Sublime Text:http://www.sublimetext.com ...
- 【NOI2004】郁闷的出纳员 - Splay
题目描述 OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资 ...