Unity创建游戏的理念可以简单地理解为:一款完整的游戏就是一个项目(project),从创建项目到完成,假设游戏中有很多个关卡,不同的关卡对应的是项目下的不同场景(scene)。每个场景中包含多个对象。每个对象身上挂载着各种各样的组件。
那么最终一个项目下面可以保存多个场景。一个场景下面可以保存多个对象。一个对象上面挂载这多个组件。构成了整个项目本身。
一、创建项目
首先,使用Unity这个软件,需要申请有账号,这个操作简单自行摸索即可。有了账号以后第一次打开Unity时,会显示这个页面:
此时提示扫描二维码登陆,这是通过Unity官方一个APP扫码登陆,上面附带的有下载链接。下面的选项提示是否已有Unity ID,可以直接使用申请的 账号进行登陆:
没有Unity ID的话可以点击Creat a Unity ID跳转到申请页面,按照提示进行申请:
正常登陆后打开的Unity页面,应该是这样:
此时主要是使用右上角的功能,要么New新建一个工程,要么Open打开一个已有的工程。
创建一个新工程时,主要注意一下几个点:
第一,Project name项目名称以英文命名,并且与之前的名称不可重复。第二,Template当前项目模式选择2D或者3D,根据实际进行选择。第三,Location存放位置,一经选择后续默认,最好存放在非系统盘。第四,Add Asset Package添加资源包,提供目前已经下载过的存有的资源包,可以勾选决定是否把那些资源包导入新工程。
二、场景创建
创建好新项目后,由于每个项目中可能会有多个不同的场景或关卡,所以开发人员往往要新建多个场景。
2.1新建场景
方法是:选择 Unity 软件界面上的菜单 File(文件)→New Scene(新建场景)命令即可新建场景,或者可以通过快捷键Ctrl+N来进行新建场景这一步操作,如下图所示:
2.2 创建对象
方法有三种:
-
1、选择 GameObject(游戏对象)→3D Object(三维物体)→Terrain(地形)命令创建一个平面。
-
2、在Hierarchy面板处点击左上角Creat(创建)→3D Object(三维物体)→Terrain(地形)命令进行创建。
-
3、在Hierarchy面板处点击空白区域,然后选择3D Object(三维物体)→Terrain(地形)命令进行创建。
上述方法可以看到在选择创建物体时,有各种各样的可供选择的,3D物体,2D物体,包括空物体,还有灯光对象,音效对象等等,所能看到的选项都是可以进行创建的。最终结果如图:
三、组件的概念
在电影里面,角色会有各种信息,比如角色的身份标签、性格,甚至他的职能。同样的,我们的游戏对象也同样可以拥有各种信息,而这些信息都是以“组件”(Component)的方式存在的。游戏对象是由一个到多个组件组成的,我们可以将组件看成是组成一台机器的零部件。
在上面的结果图中,可以看到目前场景中总共有三个物体,分别是Main Camera主摄像机,Directional Light太阳光,添加的物体Terrain地形。
每个新建的场景里面会默认添加一个Main Camera(主相机)对象和一个Directional Light(方向光源)对象。主相机负责将游戏场景投影到屏幕,负责渲染呈现运行结果,方向光源负责为整个场景提供光亮。如果将方向光源删除,游戏运行后Game界面上只能看到一个很暗的画面。如果将主相机对象从场景里面移除的话,游戏运行时我们将无法看到任何游戏画面。
通过上面的结果图我们可以发现第三个物体Terrain的所属检视面板上有三个组件。
-
第一个组件:Transform
用来显示当前物体的位置,旋转,大小缩放信息,并且可以通过调整当前组件上的值来调整对应的物体信息。
值得一提的是,Transorm组件是只要添加物体,每个物体必然要附带的组件,因为坐标位置、旋转、大小这些基本信息是一个物体存在于场景中的根本。
在 Unity 中创建一个没有变换组件 (Transform Component) 的游戏对象 (GameObject) 是不可能的。变换组件 (Transform Component) 是最重要的组件 (Components) 之一,因为所有游戏对象 的位置旋转缩放需要通过它实现。如果一个游戏对象 没有变换组件,它只是计算机内存中的一些信息,实际上并不存在于当前场景。
-
第二个组件:Terrain
这个组件是基于添加物体是哪个附带的,当前添加的是Terrain,所以自身带有这样一个组件,用来对当前的地形进行一系列的调整操作。
-
第三个组件:Terrain Collider
这个组件同样是基于当前添加的是Terrain,所以会附带这个组件地形碰撞器,上面同样是针对于当前地形的设置。
那么在我们添加物体完毕后,看到这些已有的组件的基础上,也可以自定义的手动去给当前物体添加其他的一系列组件,方法如下:
点击Add Compoent来添加组件:
在搜索框内输入想要添加的组件即可,或者也可以通过分类查找添加,我们看到在红框内有好多选项,每个选项作为一个大的类别,下面有很多属于当前类别的组件,可通过分类查找需要的组件。
- Analytics 分析组件
- AR 增强现实组件
- Audio 音频组件
- Effects 效果组件
- Event 事件组件
- Layout 布局组件
- Mesh 网格组件
- Miscellaneous 其他组件
- Navigation 导航组件
- Network 网络组件
- Physics 2D 2D物理组件
- Physics 物理组件
- Playables 人物控制组件
以及下拉后的一系列组件分类。每个分类下面基本都包含了多个组件。
在Unity中,GameObject游戏对象除了作为Component组件的容器之外,基本上没有其他功能。组件相当于是游戏对象身上的一个个零件,每个都有自身的作用。所有需要的功能都要通过组合Component来实现。脚本本身也是Component,用来在GameObject上通过控制其他Component来实现自定义的功能。
Unity游戏是通过组件的方式进行开发的,所以想要操作游戏对象也都是通过操作对应的组件对象。