http://blog.youkuaiyun.com/gyaping/article/details/7735667
没想到插入图片这么麻烦,我都是直接插入在word文档中的,如果一个一个这么插入,累不死也得烦死了。因为还在不停地修改,等基本成形之后,再共享word文档好了。下面很多有图片的地方没显示出来。
说明:
本系列内容全部原创,包括课程整体架构,也跟其他所有教程不同。
如需转载请注明:转载自葛亚平
1、 组件及组件的创建
组件(Component)是用来绑定到游戏对象(Game Object)上的一组相关属性。本质上每个组件是一个类的实例。常见的组件有:MeshFilter、MeshCollider、Renderer、Animation等等。
其实不同的游戏对象,都可以看成是一个空的游戏对象,只是绑定了不同的组件。比如:Camera对象,就是一个空对象,加上Camera、GUILayer、FlareLayer、AudioListener等组件。其他对象绑定的组件,可自行观察。
到底有哪些组件呢?可以说有无数种组件,只是有一些特别常用的,被Unity3d预先弄好了。可以通过Component菜单来查看,比如:
此处只列出两个子菜单中的组件,还有其他预设组件,可以自行查看。
2、 组件的使用
组件的目的是为了控制游戏对象,通过改变游戏对象的属性,以便同用户或玩家进行交互。不同的游戏对象可能需要不同的组件,甚至有些需要自定义的组件才能实现。
a) 组件的添加
i. 手工添加
ii. 代码添加
b) 组件的删除
i. 手工删除
ii. 代码删除
3、 自定义组件
有时我们想要的功能,Unity3d没有预设,这就需要我们在脚本中实现了。为了更好的模块化,一般是写在不同的类中,也就是以自定义组件的形式出现。
如果想自定义自己的组件的话,非常简单,只需要在项目中创建一个类即可。在项目中创建的类会默认继承自Monobehavior类。继承这个类的方法都可以绑定到游戏对象上。如果想给这个类,也就是我们创建的组件添加一些属性的话,只需要在类中声明公开的字段即可。
示例1:实现一个旋转组件。并绑定到游戏对象上。
创建一个RotateSelf类,在其Update中写上旋转语句
transform.Rotate(Vector3.right* Time.deltaTime);
保存后,把该脚本拖拽到一个cube上,然后运行。
我们创建的类,会自动在Component->Scripts子菜单中出现,默认显示的是文件名。请自行查看和试验,比如现在创建一个类,然后在Component->Scripts中查看。
如果觉得这样显示不方便的话,可以在自行创建的组件类中,添加一个AddComponentMenu的特性,比如添加一个相机处理的组件:
[AddComponentMenu("Camera-Control/3dsMaxCamera Style")]
显示如下: