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 ...
随机推荐
- easyui 属性 事件 方法
在easyui当中 属性和事件可以按照json定义的对象来使用. /*在easyui中 属性和事件的使用方法相同*/ var loginWinJson = { closed: false, closa ...
- 003_对go语言中的工作池代码练习的一些思考和改进
在进行工作池的代码练习时候,我发现了一个有趣的事情,首先看下面一段代码: package main import "fmt" import "time" fun ...
- Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)
T00ls 每日签到是可以获取 TuBi 的,由于常常忘记签到,导致损失了很多 TuBi .于是在 T00ls 论坛搜索了一下,发现有不少大佬都写了自己的签到脚本,签到功能实现.定时任务执行以及签到提 ...
- 网易云音乐ncm格式分析以及ncm与mp3格式转换
目录 NCM格式分析 音频知识简介 两种可能 GitHub项目 格式分析 总体结构 密钥问题 代码分析 main函数 导入模块 dump函数 参考资料 代码完整版 转换工具 ncmdump ncmdu ...
- centos 8 安装和网络配置
centos 8 系统安装 系统安装步骤 启动服务器之后选择 Install CentOs Linux 8 选择语言然后下一步 配置 磁盘(Installation Destir) 这里选择默认配置 ...
- java进阶(6)--访问控制权限
一.四种访问控制权限 二.举例同包下访问权限
- Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布
环境:Windows 2008 R2.Jenkins2.235.1.Visual Studio 2017: 概要 前面写过一篇文章,<自动发布-asp.net自动发布.IIS站点自动发布(集成S ...
- ElasticSearch在CentOS的安装
ElasticSearch在CentOS的安装 一.tar包安装 单机安装 创建elastic用户,ElasticSearch不支持root用户运行 useradd elastic 上传文件到 /so ...
- Spring Cloud Config Client 超时与重试
简介 有时客户端需要在 config server 无响应时进行重试,以给 config server 时间进行恢复.利用 spring 提供的重试组件,我们可以方便的配置重试机制,包括重试间隔,重试 ...
- 【算法•日更•第四十三期】QQ for linux
废话不多说,直接看一张图: 没错,这是QQ,但是这有什么稀奇的?但是在Linux上使用QQ就很稀奇了. 众所周知,腾讯早就已经对Linux下的QQ和微信停止了服务,即便是网页版也不能用,通信这一直是小 ...