Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏

即使是如今,非常多初学游戏开发的同学。在谈到Unity的时候。依旧会觉得Unity仅仅能用于制作3D游戏的。

实际上。Unity在2013年公布4.3版本号的时候,就開始提供对制作2D游戏的支持了。比如。提供了一些专用于开发2D游戏的Unity工具。如今Unity已经公布了版本号4.5。对2D游戏的支持更是完好了不少。

为了说明Unity对2D游戏所提供的支持,本章会使用这些在Unity中原生的工具,开发一个简单的2D游戏。

本文选自《Unity 2D游戏开发高速入门》

1.1地面

普通情况下我们觉得“地面”是精灵的落脚点,没有这个“地面”精灵会发生坠落。因此本章创建一个2D游戏的第一步是,创建一个供游戏精灵落脚的“地面”。创建的详细的操作步骤是:本文选自《Unity 2D游戏开发高速入门》

(1)新建一个游戏项目、命名、并设置为2D项目,如图1-1所看到的。

从中能够看出本游戏项目名为world。

图1-1  新建游戏项目

(2)准备一个将用作2D游戏“地面”的图片,然后导入到新建游戏项目的Project视图里,如图1-2所看到的,本演示样例使用的“地面”图片,名为Platform。

提示1:导入资源到游戏项目的简单的方法是,直接拖动相应资源到Project视图下。此种方法能够一次拖入一个或者多个资源。

提示2:制作游戏的过程中,会不断的导入游戏所需的资源,假设不提前做出整理规划的话,导入的资源多了以后会十分的“乱”,不仅看起来不舒服,找起来也会十分的麻烦。因此,最好养成一个资源分类存放的好习惯。在本演示样例中,导入的“地面”图片,被放置在了Assets\Textures\Scenery目录里。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF4dWViYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

图1-2  Unity中,Project视图里,是导入的图片

(3)选中Project视图里的Platform,然后Inspector视图会显示这个图片的各项属性,以及此图片的预览视图。如图1-3所看到的。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF4dWViYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

图1-3  Inspector视图里显示了Platform的各项属性

对于此图片。有下面几个属性须要简单说明:

q   Texture Type:表示图片的类型,不同的类型在项目里的用途就不同。对于2D游戏项目。系统默认设置为Sprite(2D\uGUI);对于3D游戏项目。默认设置为Texture。

q   Filter Mode:此属性一共同拥有3个选项:Point、Bilinear和Trilinear。

设置了以后,图片用在游戏中时,质量或者说画面效果依次升高。

默认设置为Bilinear。

q   Max Size:表示图片的最大尺寸。游戏中,有时会以不同的尺寸使用图片。并进行对应的伸缩。本演示样例使用的图片Platform的实际尺寸是397×221。为了不影响图片的质量,要设置Max Size属性大于397,而属性中最接近397的是512。

q   Format:表示图片的格式。设置为16 bits,表示此图片不是压缩图片,并且能够表示数以“万亿”(216×216×216)计的颜色。本文选自《Unity 2D游戏开发高速入门》

(4)要在游戏中使用此图片的话,能够直接将此图片拖动到Scene或者Hierarchy视图里。

Unity就会在当前的游戏场景中加入这个图片对象,选中游戏场景里的此图片对象,然后在Inspector视图里设置它Transform组件下的各属性,如图1-4所看到的。

q   Position:(0,0,0)。

q   Rotation:(0,0,0);

q   Scale:(1,1,1);

图1-4  加入到游戏场景的图片对象,及其属性设置

(5)“地面”对象已经加入到了游戏的场景视图中。可是它的上面还不能“站立”不论什么精灵。也就是说它会如空气一般的存在。站立在其上面的不论什么精灵,都会如踩到了空气一样“下落”。

所以须要给“地面”对象加入Collider 2D组件。一共同拥有4类此种组件,如图1-5所看到的。

不同的类型适合于不同外形形状的对象,因为“地面”对象的外形是不规则的,因此本演示样例选择使用Polygon Collider 2D组件。本文选自《Unity 2D游戏开发高速入门》

为“地面”对象加入此组件的方法是,选中场景中的此对象。然后单击Component|Physics 2D|Polygon Collider 2D命令就可以。

加入了这个组件以后,在看场景中的“地面”对象,会发现它的表面“覆盖”了绿色的线,这个线包住了对象。如图1-6所看到的。本文选自《Unity 2D游戏开发高速入门》

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF4dWViYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

图1-5  4类Collider 2D组件         图1-6  加入了Polygon Collider 2D组件的效果

Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏的更多相关文章

  1. 通过创建一个简单的骰子游戏来探究 Python

    在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏.这次,我将展示如何使用 Python 模块 Pygame 来创建一个图形化游戏.它将需要几篇文章才 ...

  2. Unity3D 创建一个简单的2D游戏

    开始研究Unity3d 中的2D游戏. 首先创建出一个项目: 然后创建出一个场景: 然后添加一个背景: 然后创建一个主人公对象: 可以是自己做的素材,也可以是用unity裁剪的素材, 下面贴出裁剪素材 ...

  3. 从开发到部署,使用django创建一个简单可用的个人博客

    本文参考于: 简书-Django搭建简易博客教程:http://www.jianshu.com/p/d15188a74104 自强学堂-Django基础教程:http://www.ziqiangxue ...

  4. 【Unity Shaders】Reflecting Your World —— 在Unity3D中创建一个简单的动态Cubemap系统

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  5. IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序

    前言:本篇博文是本人阅读国外的IOS Programming Tutorial的一篇入门文章的学习过程总结,难度不大,因为是入门.主要是入门UIImagePickerController这个控制器,那 ...

  6. C#游戏开发高速新手教程Unity5.5教程

    C#游戏开发高速新手教程Unity5.5教程 试读文档下载地址:http://pan.baidu.com/s/1slwBHoD C#是微软公布的高级程序设计语言.这门语言和C语言一样,已经成为了大学计 ...

  7. C#游戏开发高速入门 2.1 构建游戏场景

    C#游戏开发高速入门 2.1  构建游戏场景 假设已经计划好了要编写什么样的游戏,在打开Unity以后.要做的第一件事情就是构建游戏场景(Scene).游戏场景就是玩家游戏时,在游戏视图中看到的一切. ...

  8. Android零基础入门第25节:最简单最常用的LinearLayout线性布局

    原文:Android零基础入门第25节:最简单最常用的LinearLayout线性布局 良好的布局设计对于UI界面至关重要,在前面也简单介绍过,目前Android中的布局主要有6种,创建的布局文件默认 ...

  9. Android零基础入门第45节:GridView简单使用

    原文:Android零基础入门第45节:GridView简单使用 前面一共用了8期来学习ListView列表的相关操作,其实学习的ListView的知识完全适用于AdapterView的其他子类,如G ...

随机推荐

  1. 使用solr的DIHandler 构建mysql大表全量索引,内存溢出问题的解决方法

    solr官方给出的解决方式是: DataImportHandler is designed to stream row one-by-one. It passes a fetch size value ...

  2. JS contcat() 连接数组 函数

    语法: arrayObject.concat(arrayX,arrayX,......,arrayX) 1.把元素添加到数组中 arr.concat(a,b,c);2.把数组连起来 arr.conca ...

  3. 前端面试题(webpack)

    (前端面试题大全,持续更新) webpack3升级到4为什么会提升速度? webpack优化有哪些? webpack的css-loader原理讲一下 webpack压缩js css的方法

  4. C# socket beginAccept

    服务端:    需要增加的命名空间:using System.Threading;using System.Net;using System.Net.Sockets;    以下是具体实现.C# co ...

  5. Altium Designer导入pcb原件之后都是绿的

  6. jmeter--元件的作用域与执行顺序

    1.元件的作用域 JMeter中共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(conf ...

  7. [NodeJS] Use Secrets When Deploying Applications with Now

    Applications require a lot of sensitive information. Database passwords, API keys and secrets used f ...

  8. 全面解析Activity的生命周期

    欢迎Follow我的GitHub, 关注我的CSDN. 在Android应用中, Activity是最重要的组件, 其生命周期(Lifecycle)被大家所熟知. 可是, 大家须要注意一些细节, 才干 ...

  9. LA 3602 - DNA Consensus String 枚举

    原题地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  10. [Nuxt] Add Arrays of Data to the Vuex Store and Display Them in Vue.js Templates

    You add array of todos to the store simply by adding them to the state defined in your store/index.j ...