【Unity】11.3 基本碰撞体(箱体、球形、胶囊、网格)
分类:Unity、C#、VS2015
创建日期:2016-05-02
一、简介
碰撞组件(Collider) 是另一种必须随刚体 (Rigidbody) 添加的组件,以便允许它和其他组件发生碰撞。或者说,如果仅仅是两个刚体 (Rigidbody) 相互碰撞,则物理引擎不会计算碰撞,除非这两个对象又都附加了碰撞组件 (Collider)。
无碰撞组件 (Collider) 的刚体 (Rigidbody) 在物理模拟过程中只会穿过彼此。
二、基本概念
1、添加碰撞体的方法
首先选中一个游戏对象,然后依次打开菜单的【Component】--【Physics】选项,选择不同的碰撞体类型,这样就在该对象上添加了碰撞体组件。
2、碰撞体
碰撞体和刚体的共同作用使得游戏对象产生了物理效果,刚体可使得对象受到物理效果的控制和影响,而碰撞体可使对象彼此之间发生碰撞。碰撞体并不一定需要绑定刚体,但是刚体一定要绑定一个碰撞体到对象上才会有碰撞效果。
当两个碰撞体发生碰撞并且其中至少有一个添加了刚体,就会有三个碰撞消息发送给绑定它们的对象,这些事件可以被脚本所处理,并允许用户创建—个独一无二的相关行为。
3、触发器
如果要使碰撞体生效,并将其看作一个触发器,可在lnspector视图中将Is Trigger属性开启。
触发器不受物理引擎的控制,当一个触发器发生碰撞时会发送三个触发消息。触发器对于在游戏中触发各种事件非常有用,比如切换场景、自动门开启、显示帮助教程等。当然为了使两个应用触发器的对象在碰撞时发送触发事件,其中一个对象必须要有刚体组件。
4、摩擦力和弹力
摩擦力、弹力和柔软度是由物理材质决定的,Unity提供的物理材质资源包中包含了大部分常见的物理材质,导入后即可直接使用。当然你也可以创建新的物理材质并调整其参数、属性。
三、基本碰撞体
碰撞体包括球体碰撞体(Sphere Collider)、箱体碰撞体(Box Collider)、网格碰撞体(Mesh Collider)、物理材质(Physics Material)、铰链关节(Hinge Joint)、弹簧关节(Spring Joint)等。
1、箱体碰撞体 (Box Collider)
箱体碰撞体 (Box Collider) 是基本立方体形碰撞基元。

盒碰撞体是一个立方体外形的基本碰撞体。该碰撞体可以调整为不同大小的长方体,可用作门、墙及平台等,也可用于布娃娃的角色躯干或者汽车等交通工具的外壳,当然最适合用在盒子或箱子上。
(1)Is Trigger
触发器。勾选该顶,则该碰撞体可用于触发事件,并将被物理引擎所忽略。
(2)Material
材质。采用不同的物理材质类型决定了碰撞体与其他对象的交互形式,单击右侧的圆圈按钮可弹出物理材质选择对话框。
(3)Center
中心。碰撞体在对象局部坐标中的位置。
2、球形碰撞体 (Sphere Collider)
球形碰撞体(Sphere Collider) 是基本球形碰撞基元。
球体碰撞体的三维大小可以均匀等地调节,但不能单独调节某个坐标轴方向的大小,该碰撞体适用于落石、乒乓球等游戏对象。
(1)Is Trigger
触发器。若开启该项,则此碰撞体可用于触发事件,并将被物理引擎所忽略。
(2)Material
材质。采用不同的物理材质类型决定了碰撞体与其他对象的交互形式,单击右侧的圆圈按钮可弹出物理材质选择对话框,可为碰撞体选择一个物理材质。
(3)Center
中心。碰撞体在对象局部坐标中的位置。
(4)Radus
半径。球形碰撞体的大小。
3、胶囊碰撞体 (Capsule Collider)
胶囊碰撞体由一个圆柱体和与其相连的两个半球体组成,是一个胶襄形状的基本碰撞体。
胶囊碰撞体的半径和高度都可以单独调节,可用在角色控制器或与真他不规则形状的碰撞结合来使用。
Unity中的角色器通常内嵌了胶囊碰撞体。
(1)Is Trigger
触发器。若开启该项,则此碰撞体可用于触发事件,并将被物理引擎所忽略。
(2)Direction
方向。在对象的局部坐标中胶囊的纵向方向所对应的坐标轴,默认是Y轴。
4、网格碰撞体 (Mesh Collider)
网格碰撞体 (Mesh Collider) 采用网格资源 (Mesh Asset) 并基于该网格构建其碰撞体 (Collider)。对于碰撞检测,这比将基元用于复杂网格要精确得多。标记为 凸体 (Convex) 的网格碰撞体 (Mesh Collider)可以与其他网格碰撞体 (Mesh Collider) 碰撞。

通过对象的网格创建碰撞体 (Collider),不能与其他网格碰撞体 (Mesh Collider) 碰撞
网格碰撞体通过获取网格对象并在其基础上构建碰撞,与在复杂网格模型上使用基本碰撞体相比,网格碰撞体要更加精细,但会占用更多的系统资源。
(1)Is Trigger
触发器。若开启该项,则此碰撞体可用于触发事件,并将被物理引擎所忽略。
(2)Convex
Convex:凸起。开启Convex参数的网格碰撞体才可以与其他的网格碰撞体发生碰撞。
勾选该顶,则网格碰撞体将会与其他的网格碰撞体发生碰撞。网格碰撞体按照所附加对象的Transform组件属性来没定碰撞体的位置和大小比例,碰撞网格使用了背面消隐方式,如果一个对象与一个采用背面消隐的网格在视觉上相碰撞的话,那么他们并不会在物理上发生碰撞。
使用网格碰撞体有一些限制的条件:通常两个网格碰撞体之间并不会发生碰撞,但所有的网格碰撞体都可与基本碰撞体发生碰撞。如果碰撞体的Convex参数设为开启,则它也会与其他的网格碰撞体发生碰撞。需要注意的是,只有当网格碰撞体网格的三角形数量少于255的时候,Convex参数才会生效。
【Unity】11.3 基本碰撞体(箱体、球形、胶囊、网格)的更多相关文章
- 【Unity】11.4 车轮碰撞体(Wheel Collider)
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 车轮碰撞体 (Wheel Collider)专门用于创建汽车或其他移动交通工具. 车轮碰撞体是一种针对地面车辆的特殊碰撞 ...
- 【Unity笔记】静态碰撞体的陷阱
概念 静态碰撞体(Static Collider):物体勾选为静态Static,有Collider组件,无Rigidbody组件. 静态碰撞体的陷阱 Unity在游戏初始化时,会把所有的静态碰撞体合并 ...
- 在Unity中使用带碰撞体的TiledMap
虽然最近Unity2018版本推出了自己的瓦片地图,但是这个瓦片地图有点BUG,在场景内把瓦片地图铺好做成预制体,动态生成的时候居然丢失了碰撞体,于是我决定还是使用Tiled软件绘制地图并使用Tile ...
- 【Unity】第11章 第三人称角色控制器和碰撞体
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 第三人称视角控制器涉及的相关概念有: 1.刚体(Rigidbody). 2.碰撞体(Collider).包括球体碰撞体( ...
- 胶囊碰撞体(CapsuleCollider)
胶囊碰撞体 (Capsule Collider) 胶囊碰撞体 (Capsule Collider) 由两个半球体与一个圆柱体相连接而构成.它与胶囊 (Capsule) 基元形状相同. 一堆胶囊碰撞 ...
- [UE4]Static Mesh的碰撞体
一.可以在3D建模的时候添加碰撞体,导入到UE4的时候,碰撞体也会跟着导入进来. 二.也可以在UE4中自行添加碰撞体 三.在UE4中添加编辑碰撞体 四.选择碰撞体可以移动.缩放.旋转碰撞体,如果模型比 ...
- Unity3D使用碰撞体做触发器实现简单的自己主动开门
在游戏制作中触发器的使用很的方便也很有用. 这一张我们简介一下怎样使用一个简单的触发器来实现自己主动开门关门的效果. 首先确保你已经对门进行了动画的设置. 详细流程例如以下. 选择Window- ...
- [原]Unity3D深入浅出 - 物理引擎之碰撞体(Colliders)
通常Colliders会与Rigidbody一起使用,没有添加碰撞体的刚体会彼此相互穿过. 常用碰撞体有以下几种: Box Collider:盒子碰撞体,是一个立方体外形的碰撞体,可调整为不同大小的长 ...
- 【Unity探究】物理碰撞实验
这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就是物理碰撞.以前没有好好研究过,一直模糊不清,到底什么条件下才可以产生物理碰撞呢?只要其中一个有Rigidbody就可以了吗?所以进 ...
随机推荐
- V-rep学习笔记:机器人模型创建2—添加关节
下面接着之前经过简化并调整好视觉效果的模型继续工作流,为了使模型能受控制运动起来必须在合适的位置上添加相应的运动副/关节.一般情况下我们可以查阅手册或根据设计图纸获得这些关节的准确位置和姿态,知道这些 ...
- python之docstrinigs
# -*- coding: cp936 -*- #python 27 #xiaodeng #docstrinigs #文档字符串惯例 ''' 1.多行字符串 2.首行以大写字母开始,以句号结束 3.第 ...
- python之函数用法isupper()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法isupper() #http://www.runoob.com/python/att ...
- appium环境搭建参考
别人的安装经验,如果再遇到问题可以参考: http://www.cnblogs.com/fnng/p/4540731.html
- Android实现中文汉字笔划(笔画)、中文拼音排序、英文排序
发布时间:2018-11-16 技术:Android 概述 最近要做一个类似微信的,在登录界面选择国家地区的功能,微信有中文汉字笔画排序以及中文拼音排序等几种方式,如下所示: 简体中文 拼音排 ...
- ios中网络请求缓存
#import <Foundation/Foundation.h> #import "ASIFormDataRequest.h" @protocol NetWorkde ...
- ios中UIWebview中加载本地文件
[super viewDidLoad]; webview=[[UIWebView alloc] initWithFrame:self.view.bounds]; [self.view addSubvi ...
- iphone3g 蜂窝数据有效设置
iphone3g 蜂窝数据有效设置 蜂窝数据 APN cmnet/空 用户名 空 A密码 空彩信(默认为空,需要控制的话,可以设置) APN cmwap/空 用 ...
- 为什么现在很多年轻人愿意来北上广深打拼,即使过得异常艰苦,远离亲人,仍然义无反顾? 谈谈程序员返回家乡的创业问题 利基市场就是那些不大不小的缝隙中的市场 马斯洛的需求无层次不适合中国。国人的需求分三个层次——生存、稳定、装逼。对应的,国内的产品也分三个层次——便宜、好用、装B。人们愿意为这些掏钱
信念.思考.行动-谈谈程序员返回家乡的创业问题 昨天晚上在微博上看了篇 <为什么现在很多年轻人愿意来北上广深打拼,即使过得异常艰苦,远离亲人,仍然义无反顾?>,有些话想说. 感觉很多人的担 ...
- Android文件的读写
Android的文件读写与JavaSE的文件读写相同,都是使用IO流.而且Android使用的正是JavaSE的IO流,下面我们通过一个练习来学习Android的文件读写. 1.创建一个Android ...