碰撞与休眠

上一篇笔记说过,当给予游戏对象刚体这个组件以后,那么这个组件将存在碰撞的可能性。一旦刚体開始运动,那么系统方法便会监视刚体的碰撞状态。一般刚体的碰撞分为三种:进入碰撞,碰撞中,和碰撞结束。关于休眠能够理解成为让游戏对象变成精巧状态。假设给某个游戏对象休眠的状态,那么这个物体将立刻精巧,不再运动。

碰撞

首先学习下碰撞几个重要的方法:

OnCollisionEnter(  ):刚体開始接触的时候,马上调用。

OnCollisionStay(  ):碰撞过程中,每帧都会调用此方法,直到撞击结束。

OnCollisionExit(  ):碰撞停止时,调用。

给代码(下面代码仅仅是整个样例中的一部分,假设须要重建项目,我写完整个unity入门就上传全部的代码):

using UnityEngine;
using System.Collections; public class CollisionTest : MonoBehaviour
{ //碰撞显示信息
string show = null;
void Start ()
{
//默认显示内容
show = "未发生碰撞";
} //进入碰撞
void OnCollisionEnter(Collision collision)
{
show = "进入碰撞,碰撞名称:" + collision.gameObject.name;
}
//碰撞中
void OnCollisionStay(Collision collision)
{
show = "碰撞中,碰撞名称:" + collision.gameObject.name;
}
//碰撞结束
void OnCollisionExit(Collision collision)
{
show = "碰撞结束,碰撞名称:" + collision.gameObject.name;
//碰撞结束后让物体休眠
collision.gameObject.rigidbody.Sleep(); } void OnGUI()
{
//将碰撞信息显示出来
GUI.Label(new Rect(100,0,300,40),show);
}
}

碰撞器

游戏对象假设须要感应碰撞,那么就必须为其加入碰撞器。默认情况下,创建游戏对象时,会自己主动将碰撞器组件加入当中,而碰撞器组件决定了模型碰撞的方式。unity提供了5种碰撞器,各自是:box collider(盒子碰撞器),sphere collider(球体碰撞器),capsule collider(胶囊碰撞器),mesh collider(网格碰撞器),wheel collider(车轮碰撞器)。当中box collider(盒子碰撞器)适用与立方体对象之间的碰撞,sphere collider(球体碰撞器)适用于球体对象之间,capsule
collider(胶囊碰撞器)适用于胶囊体对象之间,mesh collider(网格碰撞器)适用于自己定义模型自身网格决定,wheel collider(车轮碰撞器)适用于车轮与地面或者其它对象之间的碰撞。

加入碰撞器

在导航菜单条里选择component——physics然后选择种类。

物理材质

物理材质可设定物体的表面材质,不同的表面材质可影响碰撞后的物理效果。物理材质可加入不论什么碰撞器中。首先得导入物理材质的资源,能够选择导入系统提供的标准包。import——physic materials。在标准包中提供5种经常使用的材质:bouncy(弹性),ice(冰),metal(金属),rubber(橡胶),wood(木质)

如图,给球加入了弹性材质,那个球在下落的时候接触地面变会弹回去。

除了unity标准资源包里的5个物理材质,也能够自行创建物理材质。在project视图中点击create——physic material就可以。例如以下图:

dynamic friction:动态摩擦,取值在0到1之间,0最小,1最大。

static friction:静态摩擦,取值在0到1之间,0最小,1最大。

bounciness:碰撞反弹系数,取值在0到1之间,0最小,1最大。

friction combine:普通碰撞后的摩擦模式。

bounce combine:反弹碰撞后的摩擦模式。

friction direction 2:摩擦方向,方向分X轴,Y轴,Z轴。

dynamic friction 2:动摩擦系数,摩擦方向依据friction direction 2设定。

static friction 2:静摩擦系数,摩擦方向依据friction direction 2设定。

【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠的更多相关文章

  1. Unity 3D学习笔记(三)——关于脚本

    在脚本中定义的类成员,如果是公共的话,在脚本与游戏对象绑定之后,是可以在Inspector中编辑的,例如下面这个脚本: using UnityEngine; using System.Collecti ...

  2. unity 3D 学习笔记

    1.父对象的初始位置设,即刚开始的空对象的根节点位置应当设置成(0,0,0) 这样设置可以避免以后出现奇怪的坐标. GameObject实际上就是一些组件的容器. unity 使用公用变量原因是,在U ...

  3. PHP学习笔记三十七【http】

    <?php print_r($_SERVER); //$_SERVER预编译变量[数组]输出请求报文,注意大小写 echo "<br/>"; foreach($_ ...

  4. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  5. 物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus

    物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus 物联网 (IoT) 不只是新技术,还是与旧技术的集成,其关键在于通信.可用的通信方法各不相同,但是,各种不同的协议在将海量“事物”连接 ...

  6. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  7. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  8. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  9. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

随机推荐

  1. CentOS 6.4 + 曙光DS200 IPSan组建FTP服务器

    CentOS 6.4 + 曙光DS200 IPSan组建FTP服务器 http://write.blog.csdn.net/postedit/10911105#本系列文章由ex_net(张建波)编写, ...

  2. ASP.NET - 编写让别人能读懂的代码

    http://www.cnblogs.com/richieyang/p/4840614.html

  3. 微软C#版SQLHelper.cs类

    转载自:http://blog.csdn.net/fengqingtao2008/article/details/17399247 using System; using System.Data; u ...

  4. Spring Mobile是如何判断访问设备的类型的

    Spring最近换域名了,去转转,发现了一个有意思的项目:spring mobile. http://projects.spring.io/spring-mobile/ 这个项目有很多实用的功能,如识 ...

  5. 浏览器打开URL的方式和加载过程

    不同浏览器的工作方式不完全一样,大体上,浏览器的核心是浏览器引擎,目前市场占有率最高的几种浏览器几乎都使用了不同的浏览器引擎:IE使用的是Trident.Firefox使用的是Gecko.Safari ...

  6. UVA 644 Immediate Decodability (字符处理)

    An encoding of a set of symbols is said to be immediately decodable if no code for one symbol is the ...

  7. EF具体用在什么类型的项目上

    一般来说,使用EF框架,肯定会比直接使用ADO.NET,消耗的时间多一些. 因为使用ADO.NET直接把SQL语句传回数据库执行. 而使用EF框架的话,会把所用到的尸体,转换成相对应得SQL,然后再传 ...

  8. CSS样式渐变写法

    .first_tree li:hover{ color:#FFF; cursor:pointer; background-color:#ff8a00; background: -ms-linear-g ...

  9. ASP.NET - 在线编辑器(KindEditor)

    效果: 项目结构: 前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile=" ...

  10. Windows消息队列

    一 Windows中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个“消息队列”,即应用程序队列,用来存放该程序可能 创建的各种窗口的消息.应用程序中含有一段称作“消息 ...