Unity游戏教程初步(一):开始之前
目录
前言
正式使用Unity之前
1 Unity的定义
2 Unity的安装与登录
Unity基本名词概念
1 游戏对象
2 组件
3 场景
Unity界面
1.1 项目界面
2.1 主界面-场景视图(Scene)、动画(Animator)与控制台(Console)
2.2 主界面-游戏视图(Game)、动画时间轴(Animation)
2.3 主界面-层次(Hierarchy)
2.4 主界面-项目(Project)
2.5 主界面-检查(Inspector)
前言
Unity官方手册:https://docs.unity3d.com/cn/current/Manual/UnityManual.html
本系列文章是关于unity在游戏开发方向上的教程,服务于对unity一无所知的新人或稍有所知的学习者,因为其本质上是一个针对新人的导航。阅读本系列文章,要求读者有一定的编程基础和英语基础,至少要有一定C#语法基础。
本系列文章参考的是unity官方的用户手册,系列中给出的范例代码适用于2018.7.f1版本。在阅读本系列文章的过程中,请读者多多参考用户手册。毕竟本教程是新手向的,有很多地方必然不会涉猎,而(在此基础上)要想完全掌握unity,参考手册是必然的。同时,我会在讲解特定部分的时候给出其在用户手册的位置URL以供读者参考,希望读者能够善加利用,达到事半功倍的效果。
Ps:本教程使用的是未经汉化的Unity软件,也希望读者不要图一时看着方便去安装汉化版(官方汉化在19年之后的版本支持),有些名词还是记着英文的方便。
正式使用Unity之前
在使用unity之前,读者也许需要知道下面的知识:
1 Unity的定义
现在提到unity,大部分人的第一印象都是:“unity是一个游戏引擎”。这句话对也不对。Unity是一个用于创建2/3D、AR等内容的工具/引擎(请注意是内容而不是游戏,unity在建筑、动画等领域也有广泛的用途),但是目前其最出众的是在游戏创建上的表现,所以才会让人产生“unity是游戏引擎”的错觉。
在官网的说明中(https://unity.cn/projects/about-unity),描述unity为创作引擎、开发工具。其支持维度为2/3D、AR、MR、VR,开发语言为C#。另外,使用unity制作的程序可以被编译到各种平台上使用,由于unity引擎的灵活性,这些程序也将拥有良好的可移植性。
2 Unity的安装与登录
比起大多数专业软件,unity在中国化的道路上先进了太多太多,甚至到了让人钦佩的地步。Unity有专门的中国官网和中文社区(即unity.cn,英文官网为unity.com),还有中文版本的文档。
Unity本体可以直接在中文官网下载,需要注意的是,在安装unity之前可以先安装一个Unity Hub,hub可以用于管理电脑中不同版本的unity editor。
使用unity需要一个账户,以及一个授权版本。由于目前unity已经支持了微信登陆,我们可以直接使用微信扫码登陆,免去另行注册帐号的繁琐。unity的授权分为personal、plus、pro、enterprise四种,其区别见购买Unity | 资源商店 - Unity官方商店。作为学习者,推荐读者使用personal授权,它能够体验大多数内容,并且是免费的。
Unity基本名词概念
-本节相关内容请读者参考:
-术语表 - Unity 手册,《术语表》
在使用unity之前最先要理解通顺的就是unity中的名词概念,这是最基础也是最根本的内容。读懂unity中的特殊名词,才能进一步理解unity引擎的运作模式和它带给使用者的开发方式。
作为一个粗浅的教程,我只向读者们用我自己的理解去解释下面三个名词(默认在游戏开发中)。
1 游戏对象
游戏对象可以说是整个unity游戏世界里最基础的成员,摄像机、精灵、地图、灯光等所有出现在场景中的对象都是游戏对象。如果要做个类比,可以将空游戏对象比作Ruby中的Class类(unity中空对象自带一个组件transform),将各种不同的游戏对象(精灵等)比作Class的派生类。
2 组件
在游戏对象的名词解释中,我们把游戏对象比作编程语言中的类。从这个类比出发,组件则对应着编程语言中的属性/方法,它被附加到游戏对象上,依附游戏对象表现,游戏对象可以看做是组件的容器。游戏对象的功能由附加到游戏对象的组件来定义。组件给了游戏对象不同的功能,从而使各个游戏对象表现出期望表现的形式,令游戏得以成功运行。不同的游戏对象间之所以不同,是因为他们有不同的属性(组件)。
所有的游戏对象都可以看做一个空游戏对象+组件。例如创建新项目之后预设场景里的主摄像机(下图),它就是由一个空游戏对象+组件camera构成。
3 场景
场景是一个.unity文件,由unity本身创建。在游戏中的所有游戏对象都将被放置在某个场景内。一个游戏可以有多个场景。读者可以将场景想象成游戏对象的“舞台”或者说是“容器”,再具象一点可以是RPG游戏里的关卡地图。
Unity手册中指出,场景“实际上就是以碎片化的方式设计和构建游戏”。
Unity界面
-本节相关内容请读者参考:
-启动 Unity - Unity 手册,《首次启动unity》
-项目模板 - Unity 手册,《项目模板》
-了解界面 - Unity 手册,《了解界面》
- Unity 的界面 - Unity 手册,《主要窗口》
1.1 项目界面
在安装登录完毕之后,我们终于能够打开unity了。与IDEA等软件一样,unity在进入主界面之前还有一个项目选择的界面。这个界面十分简单,因此我们略过此界面的讲解。又由于我们是第一次使用unity,为了进入主界面需要新建一个项目。新建项目界面如下:
其中两个需要讲解的部分为unity analytics与template。
Unity analytics是一个对unity游戏进行分析的数据平台,开发者可以使用其查看游戏玩家的身份等信息。
Template是创建unity项目时采用的模板,简单的来说,它的五个选项从上到下可以视为:标准2D模板、标准3D模板、含有渲染器和后期处理的3D模板、为高端平台设置的高清模板(配置要求高)、性能优先的轻量模板(高优化)、性能优先的轻量VR模板。
在本教程中,我们使用标准的2D/3D模板预设。
随意选择一个模板,创建项目,就可以进入unity的主界面。unity主界面的大致情况如下(我调整过了,跟初始布局可能会有出入,不过不是大问题):
我们把unity的界面除去菜单栏分为五个部分,如上图红框所示,并一一讲解。
2.1 主界面-场景视图(Scene)、动画(Animator)与控制台(Console)
即上图中1部分(下略)。
可以看到本部分包含了三个选项卡场景(scene)、animator和console。
Scene顾名思义就是场景选项卡,是游戏中场景的查看器。在unity中,无论预设是2D还是3D,游戏场景都是3D的。这就导致unity场景的操控要较一般2D场景更为复杂一些。没有3D建模经验的读者可能对unity场景的操控感到陌生(下图为场景工具栏),如果读者对这些内容有兴趣,可以学习3D建模相关的内容。如果读者只想要达到基础操控的目的,可以直接在场景中添加一个正方体(Hierarchy->3D object->Cube),然后依次点击按钮切换状态并尝试移动物体,用实践的方式快速学习。
Animator即是动画控制器。它用于读取和修改游戏对象的动画组件animator。
Console是控制台,其用途与IDE中控制台的功能基本一致,在调试中显示警告和错误。我们也可以在代码中使用Console.log来在控制台显示信息。
2.2 主界面-游戏视图(Game)、动画时间轴(Animation)
本部分包含两个选项卡game与animation。
Game显示的是游戏测试中的画面,其与游戏正式发布后运行游戏看到的画面相同。要进行和暂停游戏测试,点击下图所示的按钮:
Animation用于编辑组件animation,看起来像是一个时间轴。
2.3 主界面-层次(Hierarchy)
本部分包含选项卡hierarchy。
Hierarchy就是常规的层次视图,显示了项目中的所有场景及其下的所有游戏对象。通过层次视图可以简单清晰地观察到场景中游戏对象间的层次关系。
2.4 主界面-项目(Project)
本部分包含选项卡project。
Project选项卡包含了左右两部分,左边显示的是文件夹,右边显示的是当前选中文件夹下的内容(包括文件和文件夹,也就是说这是一个小型的项目文件资源管理器)。同时,我们可以在选项卡上方的搜索栏里搜索项目资源,也可以搜索unity assent store中的资源。
在选项卡文件夹显示的最上方有一个标签favorites,它用于存储一些特殊的搜索结果(可以说是一种索引吗)。在搜索栏中搜索一个关键词,然后在右上角点击星标,就可以将搜索结果加入favorites标签。
2.5 主界面-检查(Inspector)
本部分包含选项卡inspector。
Inspector选项卡用于显示和编辑游戏对象和其他项(比如说项目整体设置和游戏资源)的详细状况,在显示游戏对象时,其显示游戏对象安装的组件以及其属性。
Unity游戏教程初步(一):开始之前相关推荐
- Unity游戏教程初步(八):Animator的使用
1 前言 本节中我们来介绍Unity的动画系统以及管理动画剪辑(Animation Clip)的组件Animator. 2 Unity中的动画系统 Unity的动画系统又称为Mecanim,是一个基于 ...
- Unity游戏教程初步(五):Resources与UI
目录 前言 项目需求 增加音效 增加UI # TextMeshPro-Text 增加得分点 前言 在上一节中我们给球体添加了纹理,并且为场景设置了一个目的区域.当球体处于目的区域内时,其将变色.在这一 ...
- Unity游戏教程初步(六):迷宫算法与预制体
目录 前言 项目需求 Prim算法生成迷宫 1 算法思路介绍 2 代码示例 3 用于测试的代码 预制体(预制件) 1 定义 2 构建迷宫墙体预制体 完善工程 前言 本节我们来做迷宫生成.生成迷宫的算法 ...
- C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...
- C#开发Unity游戏教程之判断语句
C#开发Unity游戏教程之判断语句 游戏执行路径的选择--判断 玩家在游戏时,无时无刻不在通过判断做出选择.例如,正是因为玩家做出的选择不同,才导致游戏朝着不同的剧情发展,因此一个玩家可以对一个游戏 ...
- C#开发Unity游戏教程之游戏对象的行为逻辑方法
C#开发Unity游戏教程之游戏对象的行为逻辑方法 游戏对象的行为逻辑--方法 方法(method),读者在第1章新建脚本时就见过了,而且在第2章对脚本做整体上的介绍时也介绍过,那么上一章呢,尽管主要 ...
- C#开发Unity游戏教程之使用脚本变量
C#开发Unity游戏教程之使用脚本变量 使用脚本变量 本章前面说了那么多关于变量的知识,那么在脚本中要如何编写关于变量的代码,有规章可循吗?答案是有的.本节会依次讲解变量的声明.初始化.赋值和运算. ...
- unity游戏教程 space shooter (游戏控制器)
为了更好地理解unity,模仿了教程,以下均为教程中的代码: GameController.cs: using System.Collections; using System.Collections ...
- [Unity C#教程] 游戏对象和脚本
文章转载自:https://www.cnblogs.com/UnityYork/p/7704803.html [Unity C#教程] 游戏对象和脚本 博主最近在学习Unity,发现一个英文教程很好. ...
- 2d unity 多物体 射线_24小时入门Unity游戏开发系列教程
版权声明: 本系列教程来自Unity Game Development in 24 Hours, Sams Teach Yourself(出版日期:2013年12月6日) 教程内容仅供个人学习参考,版 ...
最新文章
- 计算机专业的教学内容落后实例,关于中职计算机专业教学现状的思考.doc
- 搭建IIS并配置网站之旅
- 什么叫基于web的网站_选择离开家乡在外打工,学门什么专业的技术更有前途呢?-WEB资讯专栏-DMOZ中文网站分类目录...
- 抄底指标:秘密买卖点
- php正弦函数图像,Go语言输出正弦函数(Sin)图像
- jfinal 和bjui 常用前后交互方式
- Anaconda 更新pip版本
- wps下一步快捷键_WPS的快捷键有哪些
- 计算机机设应用基础,计算机机应用基础–word.ppt
- [POJ 1625] Censored! (AC自动机+DP+高精度)
- 新式茶饮“拿捏”年轻人,“八马茶业”们的出路在哪?
- 那些清华北大随便挑的高考状元们,后来都过上了怎样的生活?
- 机器学习——低秩矩阵分解中低秩的意义、矩阵填补、交叉验证
- JPA学习 —— 第五课、JPA常用API详解
- 不重复随机数的产生 (C++)
- 苹果计算机免费的,《苹果Mac电脑使用的日常》免费版 Mac软件推荐
- sklearn.metrics 用法详解
- 教师网络计算机研修培训总结,教师网络研修总结
- java ajax轮询代码_AJAX轮询的实时监控画面
- 如何设计一个落地页,才算得上是一个好的落地页?