天天动画片 > 八卦谈 > Unity3D游戏开发(第一章 基础知识

Unity3D游戏开发(第一章 基础知识

八卦谈 佚名 2022-12-10 19:05:14

Unity是一款3D跨平台的次世代游戏引擎,“Unity”一词意为“团结”,好比集合所有人的力量一起来完成这件伟大的巨作。Unity于2005年发布第一个版本,至今已经十几年了。起初,该公司致力于游戏引擎的研发,由于Unity具有强大的跨平台开发能力与绚丽的3D渲染效果,因而很快被广大游戏开发商以及开发者信赖,尤其是在手游领域已经处在无可撼动的地位。近年来,该公司处于飞速发展中,它涉及的层面不仅仅于游戏引擎,还在AI、VR、教育、医疗、工业、动画片等领域大放异彩。

1.1Unity简介

Unity是一款标准的商业游戏引擎,商业引擎的主要特点就是:收费、封闭源码和功能强大。关于收费情况,Unity现在有三个版本:个人版、加强版和专业版。个人版完全免费,只能使用引擎核心的基础功能,适合刚接触Unity的初学者或者学生。加强版和专业版可用于发布正式的游戏,当然也是收费的,当然专业版更加昂贵,但是它可以使用Unity的服务是最全面的,主要包括Unity的Analytics分析服务等。如果你的公司或者独立工作室的启动资金或年度收入大于20万美元的话,可以购买Unity专业版,反之可以购买Unity加强版。

1.2跨平台与多工种协作

Unity是一个跨平 台游戏引擎,其中跨平台分为开发跨平台和发布跨平台。开发跨平台就是开发者可以在不同的操作系统下开发Unity 游戏,目前可以跨Windows 和macOS这两种操作系统。而发布跨平台则表示使用Unity开发出来的游戏能在多平台下运行。如图1-1所示,目前Unity已经可以横跨25个主流游戏平台,是不是很强大呢?不过每个平台可能有些自已特有的需求,详细的跨平台信息可以在官网中查阅:https://unity.cn(Unity中文官网)

传统的游戏引擎更多的是程序员在使用,而Unity则是多工种同时配合使用。Unity 提供了丰富的编辑工具,可以辅助美术人员以及策划人员在引擎中进行编辑工作,比如TimeLine时间线工具,程序员可以在不需要编写-行代码的情况下编辑各种复杂的剧情动画或者动画片。此外,Unity还提供了拓展编辑器的接口,程序员可以开发自定义的辅助编辑工具供其他工种人员使用。

Unity秉承“所见即所得”的开发理念,任何人点击播放后即可预览游戏,实时查看游戏的效果。此外,它还具有强大的图形渲染以及引擎性能。无论是策划人员、美术人员,还是程序员和测试人员等,都可以很好地使用Unity开始创作。

1.3 Unity版本

在Unity 5.X版本以后,取消了以数字命名的版本规则,而采用年份来表示。此外,Unity公司宣布了Unity全新的版本发布计划,包括技术前瞻版本(简称:Unity TECH版)和Unity LTS稳定支持版本(简称:Unity LTS版)。其中,UnityTECH版每年都会有3个大版本更新,例如Unity 2017.1.X、Unity 2017.2.X和Unity 2017.3.X。而Unity LTS版则从Unity TECH版的最后一个版本开始,持续支持两年的时间,例如Unity 2017.4.X。所以实际开发项目时,最好使用LTS版。目前只有Unity 2017才有LTS版,最新版本为LTS Release 2017.4.5f1,结尾以f1表示,可以在如下链接中下载到:https://unity3d.com/cn/unity/qa/lts-releases。Unity会为每个发布过的版本提供对应的补丁版本,补丁版本的数量一般是1至5个不等。补丁版本一般以修复bug为主,直接覆盖原版本的安装目录即可。例如,Unity 2017.2.3p1中结尾以p1表示对应的补丁。补丁版本可以在如下链接中下载到:https://unity3d.com/cn/unity/qa/patch-releases。

此外,Unity还提供了测试版本,也就是beta版本。此版本仅用于测试新功能而已,不排除会有其他严重的bug,所以平常开发中就不要使用beta版本了。每年发布TECH版本之前,Unity公司都会提前发布测试版本。例如,Unity 2018.2.0b1中结尾以b1表示对应的测试版本号。测试版可以在如下链接中下载到:https://unity3d.com/cn/unity/beta-download。另外,由于开发周期比较长,开发版本很有可能已经和最新版本相差很远了,所以有时还需要快速找到Unity的旧版本,此时可以通过如下链接找到:https://unity3d.com/cn/get-unity/download/archive。通过以上这些版本的介绍,我们可以发现Unity的版本其实是很多的。通常,在实际开发中,为了测试多个版本之间的差异性,很有可能需要同时安装好几个版本,如何管理就成了一个难题。还好,Unity提供了新工具Unity Hub来专门管理多版本(目前还是预览版)。如下图所示,打开Unity Hub后,可以安装与管理多个不同的Unity版本,并且可以很方便地用指定版本打开不同的游戏工程。有关UnityHub的详细介绍,可以参考这里:https://blogs.unity3d.com/cn/2018/01/24/streamline-your-workflow-introducing-unity-hub-beta/。

1.4 Unity 内置资源或拓展资源

Unity有很多资源内置在引擎中,开发者是无法看到的。此外,还有一部分资源作为拓展资源,需要开发者自行下载将其放入工程中。如下图所示,打开Unity旧版本的网址后,选择对应查看的版本并点击下拉菜单,即可下载该版本对应的资源,其中包括Unity编辑器、Cache Server、内置着色器、标准的资源和示例项目。

打开Unity引擎后,在导航菜单栏中选择Window→Package Manager菜单项,即可打开资源包管理器。如下图所示,Unity会将比较重要的一些包放在PackageManager中,这样可以极大限度地为引擎瘦身。开发者只需要选择下载自己需要的包即可。可以看到,目前这里大部分都标记了preview字样,未来的功能会越来越完善。

此外,Unity还提供了资源商店(Asset Store),在导航菜单栏中选择Window→Asset Store即可打开。这里面有很多好用的资源以及代码插件,当然有些是需要支付一定费用的。Unity自己也提供了大量的插件以及资源,并且都是免费的,非常适合新手来学习。下图所示,在搜索栏中搜索你感兴趣的内容,即可得到相关的插件。很炫酷吧!

1.5 示例项目打包与发布

导入示例项目,这里是在Asset Store中下载并且导入Unity最经典的angryBots项目。首先,需要在导航菜单栏中选择Edit→Project Settings→Player。默认情况下,Unity会选择Device SDK(它表示只能导出到真机上运行),这里我们选择Simulator SDK(表示可以在模拟器上运行),如图所示

接着,在导航菜单栏中选择File→Build Settings菜单项,此时会弹出构建窗口。如下图所示,在Scenes In Build中添加待打包的场景,只需打开需要打包的场景后,点击Add Open Scenes按钮即可。这里提供一个技巧,如果不需要打包某些场景,可以在该窗口中删除它或者取消勾选。在左下方的Platform处,选择待打包的游戏平台。这里列出的平台需要下载对应的支持,这里选择iOS平台,表示可以打包iPhone或者iPad。右侧是用于设置打包的参数,下面简要介绍各个参数的作用。Run in Xcode:选择Xcode的安装目录。Run in Xcode as:设置Xcode中是否以Release方式运行。Symlink Unity libraries:是否直接关联Unity安装目录下的iOS动态链接库。勾选后,调试打包会更快一些,正式发布时要关掉它。Development Build:表示是否构建开发调试版本。勾选后,下方两个勾选框会亮起来。Autoconnect Profiler:表示运行游戏后是否自动连接Profiler,用于查看游戏性能。关于Profiler的用法,可以参见第11章。Script Debugging:表示是否支持代码调试。Scripts Only Build:表示只构建脚本,不构建资源,多次构建将大幅度降低打包时间。Compression Method:选择打包时的压缩方式。

参数设置完毕后,点击Build或者Build And Run按钮即可。由于iOS平台比较特殊,需要预先生成Xcode工程,所以这里点击的构建并非真正构建成IPA安装文件。运行后,经典的angryBots项目已经在模拟器中打开了,如下图所示。

1.6 Unity服务

Unity预制了很多服务,使用这些服务不需要接入第三方SDK,直接就可以设置它们。在导航菜单栏中选择Window→Services菜单项,即可弹出服务窗口,如下图所示。更多服务的用法,读者也可以自行拓展学习。Cloud Build:远程云构建,云打包。Ads:内置广告,开发者变现平台。Analytics:挖掘玩家行为数据,添加标准以及自定义事件,提供分析面板等。Collaborate:项目版本管理服务,多人开发可以很方便地保存并且同步项目。Performance Reporting:捕获玩家在游戏中产生的错误日志,可以后台中分析查询。In-App Purchasing:跨平台充值接口。Multiplayer:点对点创建实时多人联网游戏框架。

1.7 小结

本章主要向读者介绍了学习Unity的基础知识,做好开发Unity 3D游戏之前的一切准备工作。首先介绍了Unity这款商业游戏引擎的特点,之后讲述了Unity Hub多版本管理工具以及内置或者拓展资源的用法。在学习中,我们可以通过强大的Asset Store下载适合自己的游戏插件。此外,还介绍了Unity的拓展服务。作为Unity学习基础中的基础,希望读者们认真学习本章内容,以便为后续章节的学习做好铺垫。


本文标题:Unity3D游戏开发(第一章 基础知识 - 八卦谈
本文地址:www.ttdhp.com/article/12504.html

天天动画片声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
扫码关注我们