unity操作_碰撞器 c#

碰撞器Collider

在场景中选择一个物体Cube 观察检查器Inspector 自带Cube会默认挂载盒子碰撞器Box Colilider

增加组件可以增加更多中碰撞器

Edit Collider 编辑碰撞器形状

Is Trigger选项

Is Trigger :是否是触发器,如果启用此属性 则该碰撞体将用于触发事件,并被物理引擎忽略

主要用于进行没有物理效果的碰撞检测

当我们【开启Is Trigger】 Cube下落会变成穿透地面 也就是说【不会产生碰撞】

Center :碰撞器在对象局部空间中的中心点位置

我们可以通过调整xyz的位置来调节该物体的中心点碰撞位置 通常用在不规则物体

我们在场景上创建一个球体Sphere

我们看到球体 有【Radius】半径 也就是【碰撞体的尺寸大小】

当我们改变碰撞体大小的时候

用一个未开启Is Trigger的物体去碰撞他会被球的碰撞器大小弹开

同理 盒状碰撞器等也是一样

胶囊也是一样

重点:组合物体使用多种碰撞器 :刚体对象的子对象碰撞器信息参与碰撞检测

我们对Cube创建一个空子物体

对这个空子物体增加一个Collider碰撞器组件

通过Transform更改位置和形状

复制一个放在左侧

运行即可看到效果 Cube被空子物体撑在了地面上

【父刚子碰】:

也就是说 父物体挂载刚体Rigidbody 所有子物体都会产生刚体 通常子物体做碰撞器父物体做刚体

此外还有一些不常用的碰撞器:

Wheel Collider :环状碰撞器 用于制作赛车

Mesh Collider :物体形状 = 网格碰撞器形状

我们在场景中创建一个圆柱体

我们通过切换网格世界可以看出 圆柱体的默认碰撞器是胶囊类型的

我们移除圆柱体默认的胶囊碰撞器

添加一个Mesh Collider 我们可以看出物体与碰撞器完全重合 与其他物体一样

需要注意的是要手动添加网格,当然系统自带的圆柱体有自动添加的功能

我们切回实体世界 如果想让网格碰撞器发生碰撞 需要勾选 Convex

只有勾选了Convex才能产生力的作用

网格碰撞器下的不必要计算选项

下面对物理材质进行讲解:

首先我们在Materials文件包建一个物理材质

Phy Material 其中动静摩擦为0 其用力后可无限移动,前提物体的Phy Material和地面的Phy Materials都要挂载物理材质

运行后调整Cube碰撞后 会没有摩擦一直移动

Bounciness 弹力 弹力范围0~1 如果是1就不会有能量损耗无限弹

相关推荐
avi91112 小时前
UnityProfiler游戏优化-举一个简单的Editor调试
游戏·unity·游戏引擎·aigc·vibe coding·editor扩展
学嵌入式的小杨同学3 小时前
C 语言实战:动态规划求解最长公共子串(连续),附完整实现与优化
数据结构·c++·算法·unity·游戏引擎·代理模式
学嵌入式的小杨同学5 小时前
顺序表(SqList)完整解析与实现(数据结构专栏版)
c++·算法·unity·游戏引擎·代理模式
程序猿多布6 小时前
HybridCLR热更打包后AOT泛型函数实例化缺失处理
unity·hybridclr·aot generic
平行云7 小时前
实时云渲染支持数字孪生智能工厂:迈向“零原型”制造
人工智能·unity·ue5·云计算·webrtc·制造·实时云渲染
dzj20217 小时前
Unity中使用LLMUnity遇到的问题(一)
unity·llm·llmunity
Howrun7778 小时前
虚幻引擎 C++ 制作“射击FPS游戏“
游戏·游戏引擎·虚幻
DowneyJoy8 小时前
【Unity通用工具类】列表扩展方法ListExtensions
unity·c#·交互
极客柒8 小时前
Unity 大地图 高性能路径引导Shader
unity·游戏引擎
孟无岐8 小时前
【Laya】InputManager 输入管理器
typescript·游戏引擎·游戏程序·laya