Unity作为当今最流行的游戏引擎之一,受到各大厂商的喜爱。

像是炉石传说,以及最近的逃离塔克夫,都是由unity引擎开发制作。

作为初学者的我们,虽然无法直接做出完成度那么高的作品,但每一个伟大的目标,都有一个微不足道的开始。让我们从一个2D小游戏入手,来学习Unity引擎的使用吧!

① 新建项目,寻找素材

点击“新建”,因为我们要制作的是2D游戏,所以我们在新建项目时选择“2D”。

成功创建新项目之后,我们就开始寻找制作游戏所需要的素材。

在Unity自己的资源商店中,提供了大量的优质素材供我们选择,你可以选择自己喜欢的素材。

因为这是我们第一个2D游戏,所以我们使用的是一些简单的免费素材。

找到自己喜欢的素材之后,点击下载,然后把所选的素材Import到我们的项目当中。

导入完成之后,我们可以在左下角的Assets文件夹中找到我们的素材。

完成了一些简单的准备工作之后,我们可以开始做游戏啦!

② 创建角色,搭建场景

在任何游戏中,角色都是最重要的,一个好的主角能让游戏深入人心。

当然,因为这是我们制作的第一个小游戏,所以主角也不会那么复杂。

我们打开刚才导入的素材,找到一张主角站立的图片,作为我们主角最初始的样子。

直接把图片拖拽进去就好啦!

如果你发现图片的大小不满意,请不要直接用拉伸的方式修改,而是通过修改图片的每单位像素数

让图片变成合适的尺寸。

素材中默认的每单位像素数是100,但为了让我们的主角看上去大一些,我们将它改为16。

不要忘记了,如果你要对每单位像素数进行修改,就要把这个动作中的每一帧图片都进行修改,

不然之后我们就无法做出正确的动画效果了。

记得修改的时候要保证是偶数哦!

我们的主角现在仅仅还是一张图片,让我们给它添加一些组件吧!

点击添加组件,找到 Rigidbody2D(2D刚体)——这个组件可以让我们主角受到重力影响。

再找到 Box Collider 2D(2D盒型碰撞器)和 Circle Collider 2D(2D圆型碰撞器)

这两个都是碰撞器,可以让我们的主角具有碰撞体积。

我们点击右侧的编辑碰撞器,把碰撞器的形状调整到合适的位置。

可能你会疑惑,为啥要使用两个碰撞器呢,不能直接使用一个盒型碰撞器吗?

其实,的确是可以只使用一个碰撞器的,但是在之后角色移动的部分,只有一个碰撞器会有许多不方便的地方,

所以根据你的喜好,可以选择不同的碰撞器。

做到这里,我们已经拥有了一个简单的小人物了,接下来就该制作地图啦!

在如图所示的窗口中,我们新建一个2D的瓦片地图

为什么叫做瓦片地图呢?

因为在我们绘制它的时候,有一个个的小方格,就像瓦片一样。

打开我们的平铺调色板,首先新建一个调色板,

然后在素材中找到用来制作地图的图集,拖进我们的调色板当中。

如果大小不合适的话,只要像修改主角的大小那样,调整每单位像素数的大小就好啦!

接下来,可以利用平铺调色板里的方块,画出你喜欢的地图。

画好之后,我们也给地图添加一个碰撞器。

选中瓦片地图,点击添加组件,找到瓦片地图碰撞器。添加之后,我们绘制的方块就具有碰撞体积了。

做到这里,游戏就有了基础的角色和场景,点击运行试试看吧!

我们的人物已经可以站在地上啦!

在下一节教程里,会介绍人物的基础移动和动画效果。

如果你觉得这篇博客对你有帮助,就点个关注吧!

Unity引擎入门——制作第一个2D游戏(1)的更多相关文章

  1. Unity引擎入门——制作第一个2D游戏(2)角色移动与动画

    在上一节的内容里,我们已经创建出了一个主角,也搭建了一个简单的场景. 传送门:https://www.cnblogs.com/zny0222/p/12653088.html 既然有了主角,要怎样才能让 ...

  2. 【使用Unity开发Windows Phone上的2D游戏】(2)初识工具

    下载工具 我们需要下载两个工具:Unity 和 2D Toolkit Unity 在我写这篇文章的时候,最新的Unity版本是4.2.1, 下载地址 Unity公司的开发效率实在是很高,我一个多月前开 ...

  3. 【使用Unity开发Windows Phone上的2D游戏】(1)千里之行始于足下

    写在前面的 其实这个名字起得不太欠当,Unity本身是很强大的工具,可以部署到很多个平台,而不仅仅是可以开发Windows Phone上的游戏. 只不过本人是Windows Phone 应用开发出身, ...

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

    Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏 即使是如今,非常多初学游戏开发的同学.在谈到Unity的时候.依旧会觉得Unity仅仅能用于制作3D游戏的. 实际上.Unity在2013 ...

  5. 【2D游戏引擎】WIP反思

    WIP(Working In Progress)是我初学游戏引擎开发时候开发的一个2D游戏引擎,当时计划为它实现类似Unity一样的编辑器,具有和Unity相似的工作流,但是由于水平不够,走了很多弯路 ...

  6. 2d游戏和 3d游戏的区别

    2D游戏和3D游戏的主要区别 一.总结 一句话总结:2D中的单位就是贴图,3D中的单位还有高 1. 3D 和 2D 游戏的区别主要体现在呈现画面和文件体积上: 2. 借助 3D 引擎可以提升 2D 游 ...

  7. Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节

    声明:   本博客文章翻译类别的均为个人翻译,版权全部.出处: http://blog.csdn.net/ml3947,个人博客:http://www.wjfxgame.com. 译者说明:这是一个系 ...

  8. Unity Shader入门精要学习笔记 - 第14章非真实感渲染

    转载自 冯乐乐的 <Unity Shader 入门精要> 尽管游戏渲染一般都是以照相写实主义作为主要目标,但也有许多游戏使用了非真实感渲染(NPR)的方法来渲染游戏画面.非真实感渲染的一个 ...

  9. Pygame制作微信打飞机游戏PC版

    使用Pygame制作微信打飞机游戏PC版 转至:http://www.cnblogs.com/dukeleo/p/3339780.html   前一阵子看了一篇文章:青少年如何使用Python开始游戏 ...

随机推荐

  1. audioContext.decodeAudioData 返回null 错误

    此问题并不是100%出现.没想到国外大神已经有处理此问题的经验 原贴地址: https://stackoverflow.com/questions/10365335/decodeaudiodata-r ...

  2. DvaJS入门课

    不管是Vue还是React,他们都没解决组件间的通信和数据流问题.当然,这个说法不是很准确,准确的说法是他们都没很好的处理这些问题.我们是可以用一些烂手段去解决这个问题,但是当应用比较大.数据多的时候 ...

  3. Await/Async

    Async其实就是Generator函数的语法糖. 啥是语法糖?就是一种更容易让人理解,代码可读性更高的另外一种语法. const asyncRead = async function(){ cons ...

  4. scrapy mid中间件一般处理方法

    import user_agent import requests class UA_midd(object): def process_request(self,request,spider): r ...

  5. scrapy全栈抓xpc练习

    # spider文件 # -*- coding: utf-8 -*- import scrapy import re from scrapy import Request import json im ...

  6. 数据结构 - List 接口

    简介 List接口继承自Collection接口,是Collection三大延伸接口之一.List中的元素都是有序的,并且都支持用索引访问.同时List中的元素允许重复. public interfa ...

  7. jupyter 安装问题 building 'zmq.libzmq' extension error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    1.用pip install jupyter 安装到一半就报错 错误提示: building 'zmq.libzmq' extension error: Microsoft Visual C++ 14 ...

  8. 利用EPX Studio将C/S程序转成B/S的方法详解(在线模块方式)

    采用 EPX 的在线模块,是最简单的方法,包括实现简单,客户端不需任何设置,客户使用就简单. 1. 设置服务器端参数(EPServer) 1.1 在服务配置工具选项卡中,设置服务项中的名称,路径,激活 ...

  9. 还记得第一个看到的Flutter组件吗?

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 MaterialApp 在学习Flutter的过程中我们第 ...

  10. 扩展gRPC支持consul服务发现和Polly策略

    gRPC由于需要用工具生成代码实现,可开发性不是很高,在扩展这方面不是很友好 最近研究了下,进行了扩展,不需要额外的工具生成,直接使用默认Grpc.Tools生成的代理类即可 相关源码在文章底部 客户 ...