创建游戏对象和组件

http://www.maiziedu.com/course/540/ 组件教程 prefabs教程http://www.maiziedu.com/course/642-9396/

我们前面讲了很多的基础知识,最近一直很忙,很久没出基础系列的教程了。在今后的一段时间了我尽量挤出时间来将基础系列的讲解完。希望这套教程对那些初学者能起到一定的用处。同时自己也起到了温故而知新的作用。 好了,废话不多说了,下面开始介绍unity中的组件。unity3d的每一个物体的属性都是一个一个的组件组成的,除了一些基本的组件之外,大部分组件都是可以添加和删除的。我们添加了组件之后,他将会出现在inspector面板
我们可以在inspector面板中清楚的看到这个游戏物体所包含的所有组件Transfoem组件。控制物体的位置,方向和大小。sherecollider组件AI是一个脚本文件,在unity系统中也将他作为一个组件。 还有AudioSourde组件。声音组件,可以给物体添加声音。  我们看下组件是怎样添加和删除的,新建一个游戏物体,选中该物体,点击工具栏中的Component->physics->Rigidbody.

然后查看inspector面板,发现面板上多出一栏Rigidbody组件,这样我们这个物体就添加后了一个重力组件。如果我们添加好了这个组件,然后像删除掉这个组件不用了。这个操作起来非常简单,点击组件右上角的按钮,在下拉菜单中选择RemoveComponent即可删除该组件,如图:

下面我们看下unity中那些组件 点击菜单栏中的Component菜单项,得到如图的下拉菜单

Unity3D中的组件都包含在这个菜单里面我们来大致看下都有那些功能。Mesh:网格组件,3D网格是Unity中最重要的图形元素。Effects:效果组件,各种视觉效果组件。Physics:物理组件,是unity中非常重要的一组组件,里面包裹我们经常会用到的刚体和碰撞器。Navigation:导航组件,Audio:声音组件。Rendering:渲染组件,这个组包括在游戏中渲染和界面元素的所有组件。光照和特定效果也包含在这个组。Scripts:脚本组件,还有就是我们为了项目制作需要,安装的一些插件也会出现在改文件夹;在以后的章节中我们将对每一个组件进行详细的介绍。

上次对unity的组件进行了一个概括的介绍,今天就介绍一下unity3d中的一组重要的组件,物理引擎组件。物理引擎就是在游戏中模拟真实的物理效果。什么是物理效果呢,比如在游戏中我们击打一个物体,这个物体就会受到力的作用,当物体受到击打力之后产生的效果,就叫做物理效果。物理引擎就是实现这种效果的一个组件。如果没有这个组件,我们就必须用大量的代码来描述这种效果,现在加上这个组件之后,我们只需要设置一下参数,就可以将这些复杂的效果模拟出来,极大的减少了工作量。物理引擎中主要分为两大块,刚体和碰创器。我们今天先来看下刚体组件,刚体组件可以给物体添加一些常见的物理属性,比如物体的质量,摩擦力,碰创参数等等,这些属性可用来真实的模拟物体在3D游戏世界中的一切行为。新创建的物体时不具备刚体组件的,下面我们加来看第一步,怎么给一个物体添加刚体组件首先创建一个场景,其中包括一个地面,三个GUBE。三个GUBE分别设置不同的颜色。以便区分,如图:

选中红色的cube然后在菜单栏中选择Component->

hysics->Rigidbody如图:

这样一个刚体组件就添加完成了,运行游戏看看有什么变化。我们发现运行游戏后红色的物体开始自由下落,其他两个没有变化。这是因为我们给红色物体添加了Rigidbody组件后,它收到了重力的影响。

选中红色的物体,在Inspector视图中可以看到Rigidbody组件包含的属性,下面介绍一下这些属性的含义,

Mass:质量,数值越大物体下降的速度就越快,默认值是1,设置数值是尽量不要超过10,否则物理效果就不真实了。Drage:阻力,数值越大物体速度减慢的就越快。Angular Drag:角阻力,数值越大自身旋转的速度减慢的就越快,UseGravity:是否使用重力。IsKinematic:是否受物理影响。Interpolate:设置图像差值。CollisionDetection:碰创检测。Constraints:冻结,停止某个轴向感应物理引擎的效果。  Freeze Position:冻结X,Y,Z轴的位移。Freeze Rotation:冻结X,Y,Z轴的旋转。这是对单个物体的物理效果的设置,unity3d中也可以对整个项目中的所有物理效果进行设置,设置方法,选择菜单栏中Edit->

roject Settings->

hysics

此时即可在Inspector面板中打开“Physics Manager”(物理管理器)界面。

Gravity:重力,默认情况下物体受Y轴向下的重力为9.8N。Default Material:默认物理材质。BounceThreshold:反弹值,Sleep Velocity:睡眠速度。当速度低于睡眠速度是,它保持静止。Sleep Angular Velocity:睡眠角速度。当角速度低于睡眠角速度时,自身不在旋转。Max Angular Velocity:最大角速度。Min Penetration For Penalty:用于物体与物体之间碰撞后最小穿透力。Solver Iterstion Count:迭代数量,默认值是7.Raycasts Hit Trigger:是否启动命中触发。Layer Collision Matrix:图层碰撞矩阵。当这些都按照我们的项目要求设置好之后,我们就可以给我们添加了Rigidbody的物体一个力,让它在力的作用下运动了。刚体组件可以受力的作用,比如给刚体施加一个x轴方向的力,那么该刚体绑定的物体将沿着x轴方向上向前移动,这就好比用力将物体仍出去一样,该物体将依抛物线的形式移动。Unity中的力有两种:一种普通力,需要设定方向和大小;     第二种为目标位置力,需要设定目标点的位置。下面就通过一个实例看下着两个力的区别。新建一个C#脚本,命名为AddForec并输入一下代码using UnityEngine;using System.Collections; public class AddForce : MonoBehaviour {  //添加力的物体     public GameObject addFroceobj;  //目标位置     public GameObject cubeobj;               void OnGUI()     {              if(GUILayout.Button("普通力",GUILayout.Height(50)))              {//普通力                       addFroceobj.rigidbody.AddForce(1000,0,0);              }              if(GUILayout.Button("位置力",GUILayout.Height(50)))              {          位置力                       Vector3 force=cubeobj.transform.position-addFroceobj.transform.position;                       addFroceobj.rigidbody.AddForceAtPosition(force,addFroceobj.transform.position,ForceMode.Impulse);              }     }}设置完成后,运行游戏,当点击普通力按钮是,物体将会受到x轴方向上一个大小为1000的力的作用当点击位置力是,物体将会向我们的目标物体移动,力的方式为冲击力。好了,关于刚体就介绍这么多,下一次将介绍碰撞器的用法。

今天看下unity3d物理引擎的另外一个重要组成部分,碰撞器,在unity3d中,如果一个物体想感受碰撞,就必须添加碰撞组件。  我们先通过一个小例子看下什么叫碰撞,物体添加碰撞和没有添加碰撞有什么区别。首先创建一个场景,包括两个cube一个设置为红色一个设置为黄色,创建一个地面。然后给两个物体添加Rigidbody,讲黄色的物体的BoxCollider组件去掉。然后运行游戏,我们会发现红色的小球与地面发生了碰撞,黄色小球没有感应到碰撞,直接穿过地面。

下面我们看下怎么给一个物体添加碰撞器,选中需要添加碰撞器的物体,然后选择菜单栏的Component->

kysics如图:

图中用红线框住的部分就是unity给我们提供的所有的碰撞类型。Box Collider:盒子碰撞器,适用于立方体之间的碰撞,Sphere Collider:球体碰撞器适用于球体之间的碰撞Ca

ps

sule Collider:胶囊碰撞器适用于胶囊体之间的碰撞Mesh Collider:网格碰撞器他的碰撞方式由自定义模型的自身网格觉得,适用于自定义网格碰撞Wheel Collider:车轮碰撞器适用于车轮与地面之间或其他物体之间的碰撞Terrain collider:这个应该是地形碰撞器,新加上的,没用过。下面们点击Box Collider选项,这样我们就给物体添加了一个盒子碰撞器。在Inspector中可以看到Box Collider组件的属性如图:

Is Trigger:触发器 如激活,此碰撞器用于触发事件,并且被物理引擎忽略。Material:物理材质 引用何种物理材质决定了他和其他对象如何作用。Center 中心 碰撞器在对象本地坐标中的位置。Size 尺寸 在X、Y、Z三维上的碰撞器尺寸。中心和尺寸就不用多讲了。下面我们重点来看下Is Trigger和Material。首先看看Is Trigge,如果我们勾选了Is Trigge后面的选项,物体将不受物理引擎控制,当和一个触发器发生碰撞时会发出三个独特的触发信息。触发器用于触发你游戏中的其他事件,比如过场动画、自动门开启、显示教程信息等等。当然为了使两个触发器碰撞时发出碰撞事件,其中一个必须包含刚体。 。一个触发器和一个普通碰撞器碰撞,其中之一必须附加刚体。Material是物理材质,是用来设置物体表面材质的,不同的表面材质可影响碰撞后的物理效果。下面我们看下怎么在碰撞其中添加物理材质。Unity标准资源包中提供了一些物理材质的资源,首先要将他们添加进来。方法如下,在Project视图中单击鼠标右键,在弹出的快捷菜单中选中Import Package->

husic Materials,导入资源包

标准资源包中提供了五种物理材质:

Bouncy:弹性材质。Ice:冰材质。Metal:金属材质。Rubber:橡胶材质。Wood:木头材质。下面看添加方法,首先在Scene视图中选择需要添加物理材质的物体然后在Project视图中通过拖动将Bouncy赋值给Inspector视图中的SphereCollider即可。

除了这五个制作好的物理材质外,还可以自己制作物理材质,制作方法如下。在prject视图中点击Create->

hysic Material菜单即可。

选择我们新建的物理材质,在Inspector视图中,看到新建物理材质的所有属性。下面简要介绍一下这些属性的含义

Dynamic Friction:动态摩擦,取值0,1之间,0是最小动态摩擦,1为最大动态摩擦。Static Friiction:静态摩擦,取值同上Bounciness:碰撞反弹系数,取值0表示无反弹,1表示最大反弹。Fiction Combine:普通碰撞后的摩擦模式Bounce Combine:反弹碰撞后的摩擦模式Friction Direction:摩擦方向,方向分为x,y,z轴。Dynamic Friction2:动摩擦系数Ststic Friction2:静摩擦系数。按照需求调节完成。这样一个新的物理材质就制作完成了。也可改变不同参数,看看每个参数对物体的影响。

www.maiziedu.com/course/540/ 组件教程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容