上回书说到了unity的基本操作。这回我们来侃侃unity中的组件与脚本。
目录结构
一.组件与脚本简介
1.组件
组件(Component),顾名思义,就是游戏物体的组成部件。
这和我们对现实生活的认识是一致的。就比如说一台主机,是有CPU,显卡,主板,内存条等等组成的。这些部件就是主机的“组件”。这些组件一旦有不满意的,随时可以增删改查。
Unity3D就是一个“组件式”的游戏引擎,它使用各种各样的的组件“拼装”了游戏物体,最终再把游戏物体拼装成游戏。
上图是一个Plane的自带组件。
Unity3D为我们提供了许多种类的组件。后期其实就是各种组件的使用和特性,以及它们能实现的功能和效果。
按照我们老祖宗的理论,五行是组成世界的最基本元素。那么在Unity3D中,组件就是组成游戏世界的最基本元素。
我总结出了上面一幅图,这幅图相当重要,大家需要认真看看。因为这涉及到了游戏物体与脚本中类和对象的联系。
2.Transform组件
在这里提一个最最基本的组件之一——Transform组件。
Transform,中文为“变换”,这个组件有三大基本属性,Position(世界位置坐标),Rotation(相对自身坐标系的旋转角度),Scale(相对于初始的缩放比例)。
这个组件是每一个游戏物体都有的属性,并且不能删除。其实想想也是,在现实生活中,只要是一个物体必定有方位、旋转、缩放的属性。
通过修改这三大属性的X\Y\Z值,我们就可以控制物体的“变换”信息了。这里有一个小技巧,当把鼠标放到X\Y\Z上时,鼠标变成了可以左右拖动的标志,可以直接左右拖动改变值,当然直接修改值也是ok的。
3.脚本
脚本(Script),也就是给游戏物体写的代码,用来控制游戏的逻辑。在Unity3D 5.x版本后,只支持C#脚本和JavaScript脚本。在国内开发的主流的C#。
4.创建与管理脚本
我们说过,Assets文件夹是总管,所以我们在Assets中新建一个Scripts文件夹,用来管理脚本资源。
在Scripts文件夹中右键-->Create-->C# Script。C#脚本文件的后缀是“.cs”。双击脚本文件,可以调用代码编辑器进行编辑。
5.原始脚本代码组成
在上一步我们新建了一个脚本,这次打开它看看究竟是什么东东。
ok,我们看到这次unity帮我们新建立了一个类,类名就是我们的脚本文件名。然后它继承自MonoBehaviour类,这个类呢,在unity的地位和作用,类似于在java中的Object类,所以重要性不言而喻。有兴趣的童鞋可以去看看这个类的实现。可以看一下这篇文章:http://blog.csdn.net/yuyueliuliu/article/details/43795333。还能看到,这个脚本using了UnityEngine的引擎。然后unity还帮我们写了两个方法Start()和Update()。
Start():当游戏运行起来,这个方法就会马上执行且只执行一次。由此看来,这个方法非常适合做初始化的工作。事实上也是这样的,我们常常在这个方法中做一些GetComponent()的操作。
Update():循环调用,每一帧就调用一次。我大致测了一下,一般的场景大概是每秒60次的样子。
这里还要介绍一个方法:Debug.Log()。这个用来输出调试。如果你的目标是“helloworld”,ok,这个方法正好就是这样。
顺便提一句,Start()和Update()都是unity内部的“事件方法”,不需要我们人工调用,系统会自动调用和管理这些方法的。
6.使用脚本
直接将脚本拖拽到Hiearchy面板的物体上
直接将脚本拖拽到物体的Inspector面板上
运行游戏,脚本自动执行。
这是一个first.cs脚本:
usingUnityEngine;usingSystem.Collections;public classfirst : MonoBehaviour {voidStart () {
Debug.Log("这是Start方法");
}voidUpdate () {
Debug.Log("这是Update方法");
}
}
把它添加到灯光上,运行游戏,控制台效果: