Unity 2D 终结手册 (1) (2) - 2D 项目+精灵_Unity3d开发

Unity 2D 终结手册 (1) - 2D 项目+精灵_Unity3d开发_蓝鸥

这篇系列文章主要介绍 Unity 2D 开发技术。包括 2D/3D 项目的区别、如何设置 2D/3D 模式、2D 开发中使用到的组件等。

Unity 不止能够制作酷炫的 3D 游戏,同样也能够制作完美的 2D 游戏。使用 Unity 开发 2D 内容时,编辑器的大部分功能都是通用的,只不过有些功能为了简化 2D 开发,做了一些调整。

(图 1)Unity 2D 游戏

在 Scene 视图上方的工具条中,有一个明显的 2D 模式按钮,点击按钮就能够在 2D/3D 模式间进行切换。当开启 2D 模式时,场景会以正交视图进行显示(3D 模式下是以透视视图进行显示的),此时 Scene 视图的视角看起来是朝着 Z 轴正方向的,并且向上是 Y 轴正方向。在此模式下我们可以轻松地设置 2D 场景、操作 2D 对象。

(图 2)2D 模式下的 Scene 视图

当我们创建一个新的项目时,我们可以选择是以 2D 模式还是 3D 模式启动。2D/3D 模式决定了 Unity 编辑器的一些设置,比如当导入一张图片时,会把它默认作为 Texture(纹理)还是 Sprite(精灵)。如果我们不小心选错了模式也不要紧,在项目创建成功之后,我们依然可以在 2D/3D 模式之间切换。如果我们不太清楚我们的项目应该以 2D 模式还是以 3D 模式开始,我们就应该先了解一下 2D/3D 项目的区别。

一、完全 3D 的项目

3D 游戏通常使用三维立体几何模型,使用材质(Material)并将纹理(Texture)渲染(Render)在这些模型表面,使它们看起来像个房子、角色或其它物体,然后构成整个游戏世界。摄像机可以在场景周围自由地移动,逼真的光影投射在整个游戏世界中。3D 游戏的渲染需要通过视角计算,这样一来,越靠近摄像机的物体,在屏幕上就会显示的越大。对于满足这些描述的游戏,都应该在 3D 模式下进行开发。

(图 3)一些完全 3D 的场景

二、正交 3D 项目

有时,游戏中会使用三维立体几何模型,但是摄像机却是正交摄像机,而不是透视摄像机。这是游戏开发中一种常用的技术,一般会以“鸟瞰图”的形式呈现整个场景,我们也叫它“2.5D”。如果我们需要开发这样的游戏,也应该选择 3D 模式,因为即使整个画面看起来没有透视效果,但我们仍然需要使用 3D 模型和资源。不过需要把摄像机和场景视图调整为正交。

(图 4)一些采用正交视图的 3D 游戏

三、完全 2D 项目

许多 2D 游戏使用的是平面图形,也叫作 Sprite(精灵)。它们没有立体感,是直接绘制在屏幕上的图像,并且游戏中的摄像机没有透视的感觉。对于这种类型的项目,我们应该选择在 2D 模式下开始。

(图5)一些完全 2D 的游戏

四、使用 2D 的玩法但是采用 3D 图形的项目

在一些游戏中使用了三维立体模型,但限制游戏在两个维度上进行,只有 2D 的玩法。例如,游戏中使用的是 3D 模型的障碍物、人物、场景,摄像机也是透视摄像机,但是摄像机永远只能提供一个横向滚动的视图,玩家也只能操作人物在两个维度上运动。对于这些游戏,3D 只能算是一种风格,并不是游戏的功能。这种游戏也可以叫做“2.5D”。由于在开发过程中我们需要使用到 3D 模型,所以这类游戏同样需要选择 3D 模式。

(图 6)一个 2D 横板游戏,但是采用了 3D 图形效果

五、使用 2D 图形和玩法,但包含透视相机的项目

这也是 2D 游戏常用的一种风格,采用 2D 图像但使用的是透视摄像机。这种项目中,所有的图像都是平面的,但是距离摄像机的远近不同,当摄像机移动时会产生一种视差滚动的效果,比较有层次感。我们在 2D 模式下就能够进行开发,只是需要把 Scene 视图设置为 3D,并且将摄像机调整为透视摄像机。

(图 7)一个完全 2D 的游戏,但是使用了透视摄像机

六、其他类型的项目

你的项目可能属于上述类型中的一种,也可能你想制作一款完全不同风格的项目,可以参考上面提到过的常见的类型,并且记住 2D/3D 模式是可以在项目开发过程中随时修改的。

Unity 2D 终结手册 (2) - 精灵

2D 中的所有图像我们都称之为精灵(Sprite)。精灵和标准的纹理几乎一样,但是采用了特殊的技术用来组合并管理精灵纹理,进而提高开发效率,使操作更便捷。Unity 提供了一个内置的精灵编辑器,能够从一张大的图片中提取精灵图像。这样我们就可以使用外部的图形编辑器(比如 Photoshop),在一个单独的纹理中编辑多个图像组件。例如,我们可以把角色的手臂、腿、身子等都作为一个个单独的图像元素,保存在一张大图中。

2D 的精灵对象需要使用精灵渲染器(Sprite Renderer)进行渲染,而不是使用 3D 对象的网格渲染器(Mesh Renderer)。我们可以通过组件菜单(Component -> Rendering -> Sprite Renderer)给游戏对象添加精灵渲染器;或者直接创建一个带有精灵渲染器的游戏对象(GameObject -> 2D Object -> Sprite),我们叫它精灵对象。此外,我们也可以通过精灵创建工具,制作出占位精灵(Placeholder Sprite)。

相关工具

在 Unity 中提供了一系列针对精灵操作的工具,它们能够简化我们的工作流。包括精灵创建器(Sprite Creator)、精灵编辑器(Sprite Editor)、精灵打包器(Sprite Packer)和精灵渲染器(Sprite Renderer)。

精灵创建器(Sprite Creator)能够让我们在 Unity 中创建占位精灵(Placeholder Sprite),这样即使美术还没有提供给我们图像素材,我们也可以先进行开发。

我们可以使用精灵编辑器(Sprite Editor)从一张大图中提取精灵图像,也可以在一个纹理中编辑图像组件,比如胳膊、腿等。

精灵对象必须通过精灵渲染器(Sprite Renderer)渲染才能够显示在场景中。

在项目中使用精灵打包器(Sprite Packer)能够优化显存的使用和性能。

导入并设置精灵

在 Unity 中,精灵也是一种资源,我们能够在项目视图(Project View)中看到它们。有两种引入精灵的方式:

1、在Finder(Mac OS)或者文件资源管理器(Windows)中直接将图片资源拖拽到 Unity 的项目视图(Project View)里面;

2、从Asset -> Import New Asset来选择要导入的图像资源。

接着我们需要将导入的图像资源设置为精灵。如果我们的项目模式是 2D,那么导入图像资源之后会自动识别为精灵。如果我们的项目模式是 3D,导入之后默认为纹理(Texture),我们需要改变它的纹理类型(Texture Type):

1、选中导入的图像资源,在检视视图(Inspector View)中会显示它的导入设置(Import Setting);

2、将纹理类型(Texture Type)属性改为Sprite(2D and UI)。

(图 1)在导入设置中将纹理类型改为精灵

时间: 2024-07-31 08:18:34

Unity 2D 终结手册 (1) (2) - 2D 项目+精灵_Unity3d开发的相关文章

Unity 2D 终结手册 (3) - 精灵编辑_Unity3d开发

Unity 2D 终结手册 (3) - 精灵编辑_Unity3d开发_蓝鸥 有时,一个精灵纹理(Texture)只包含一个精灵元素(Element),但是更常见的是,在一张图像中包含多个相关的精灵元素,这样使用起来会更方便.例如,在一张图像中可以包含一个角色身上的所有部位,或者包含一辆车的车轮.车身等.对于这样的图像资源,Unity 提供了一个方便的工具,能够快速地提取出里面的元素并让我们进行编辑,这就是精灵编辑器(Sprite Editor). 通过以下两个步骤打开精灵编辑器(Sprite E

以太坊Dapp项目-网页钱包开发手册

以太坊Dapp项目-网页钱包开发手册 修订日期 姓名 邮箱 2018-10-10 brucefeng [email protected] 前言 在之前的一篇文章以太坊智能合约项目-Token合约开发与部署中,我们提到了钱包了钱包的概念以及主流的几种钱包,如Mist,MyEtherWallet,MetaMask等,之前我们主要将钱包作为一个开发工具使用,用于智能合约的开发与调试工作,使用较多的是浏览器插件钱包MetaMask. 在本文中,我们主要介绍MyEtherWallet以及如何实现一个简易版

HelloX项目github协同开发指南

概述 为了提高协同开发效率,HelloX项目已托管到github站点上. 依据眼下的开发进展,创建了下列几个子项目: HelloX操作系统内核项目:https://github.com/hellox-project/HelloX_Kernel.git HelloX操作系统GUI模块项目:https://github.com/hellox-project/HelloX_GUI.git 面向STM32的移植版:https://github.com/hellox-project/HelloX_STM3

Django安装 测试、导入项目以及运行开发服务器

安装Django  下载Django包,解压缩. CMD 进入解压路径下. 执行:python setup.py install 增加环境变量: C:\Python27\Scripts 测试django是否安装成功 shell import django django.VERSION 把Django导入项目 CMD 进入项目路径 执行 django-admin.py startproject 项目名  运行开发服务器 项目Django路径下  python manage.py runserver

基于plusgantt的项目管理系统实战开发

<基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构.自定义工作流)> 课程讲师:Adam 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring 3+JDBC+RMI的架构.jquery.工作流 涉及项目:项目管理系统 咨询QQ:1337192913(小公子) 本课程是某航空研究所的真正项目的缩影.在课程中,将实际项目的业务进行了缩减,但是主要的技术点全部都讲解到了. 课程内容虽然不多,但是麻雀虽小五脏俱全,通过学习本课程,可以掌握到

《结对-结对编项目作业名称-开发环境搭建过程》

<结对-结对编项目作业名称-开发环境搭建过程>要求:选择适合的开发工具,搭建开发环境及环境搭建过程. 1.开发工具:Python Python,是一种面向对象.直译式计算机编程语言,具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内

【课程分享】基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构、自定义工作流)

课程讲师:张弘 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring 3+JDBC+RMI的架构.jquery.工作流 涉及项目:项目管理系统 更新程度:完成 QQ  1269532055 本课程是某航空研究所的真正项目的缩影.实际项目价值217万,在课程中,将实际项目的业务进行了缩减,但是主要的技术点全部都讲解到了.课程内容虽然不多,但是麻雀虽小五脏俱全,通过学习本课程,可以掌握到企业信息化办公系统的主要开发方法和设计思路,并且学习强大的自定义工作流中间件的内容,掌握

Thrift项目Server端开发流程

Thrift项目Server端开发流程 首先,先了解工程中所有包的功能(见下图) 该图为用户中心项目的目录结构,以下依次介绍. 1.     src/main/java com.framework:该目录存放着所有系统所需要的共同的一些类. com.user:这个包下面放着本小组的功能代码. dao:该层主要存放着调用数据库层的方法 entity:业务实体bean mapper:业务sql service:thrift接口的实现类 thrift:thrift的IDL生成的java文件 com.u

天然工坊平台项目模式系统开发

随着微信产品的日趋成熟,各行各业的企业都蠢蠢欲动,想吃下微信这款蛋糕,湖南天然工坊就开启了一条新型的互联网之路,该公司研发的竹妃纸巾,通过微信公众号平台以及搭载的自有web电商平台,通过口碑引爆传播,天然工坊从竹妃纸巾切入新兴消费品市场,在产品主张.销售模式都突破了以往既定的路径.天然工坊平台项目模式系统开发找何经理.天然工坊系统项目开发.天然工坊模式平台项目开发等--(188.264.66502 微/电) 最近几年随着响应式布局的发展,一次开发多次使用,自适应屏幕的响应式网站的需求越来越多.但