Unity学习笔记(二)无代码做个2D游戏

资料/资源

Unity手册Unity User Manual 2021.3 (LTS) - Unity 手册

Playground官方教程Unity Playground - Unity Learn

Playground下载安装Unity Playground | 视频教程项目资源 | Unity Asset Store(安装方法见Unity学习笔记(一)Unity的界面和操作

Playground框架介绍及教程:Unity Playground 是一个开发基于物理的 2D 游戏的框架,可以在 Unity 中无需代码来制作游戏。

Unity Playground - Unity Learn

Playground:入门 - Unity Learn

Playground:参考指南 - Unity Learn

在Assets中找到 Playground 框架自带的pdf教程:


1、Playground简介

Unity Playground 提供了一系列易于使用和整合的单任务组件,因此不要求具有编码技能。可以作为Unity纯新手学习制作游戏、游戏设计的第一个里程碑。在通过Playground制作几个游戏后,就可以尝试在项目中加入自己的图形、自己的代码。

学习Playground前需要掌握Unity界面、游戏对象、组件、预制件等。

在导入Playground资源后,可以在Project窗口看到很多新的资源。

Scripts

最重要的就是scripts脚本,分为Gameplay、Movement和Attributes等。每个脚本都是一个组件,执行着最基本的动作,并且一般是互相结合来创建不同类型的Gameplay。

Images

用于制作游戏的不同用途的图片。

Prefabs

用Images中的图片预制的角色。

2、制作第一个游戏

飞船游戏:控制飞船躲避陨石。

2.1、创建背景

① 将Project窗口->Images->Backgroungs文件夹的BG_space图片拖入Hierarchy窗口。

② 在SpriteRender中将DrawMode属性值从Simple设为Tiled(可调整尺寸)。

③ 将VisibilityOptions->SortingLayer属性值从Default设为Background(图片始终位于最底层)。

④ 拖动放大图片,使之覆盖整个白框范围(摄像机视角区域),更大尺寸也可以。

2.2、创建角色

添加角色:将Project窗口->Images->Spaceships文件夹的SpaceshipRed图片拖入Hierarchy窗口,将自动创建一个游戏对象,这将作为player。

角色对象命名:选择player,将对象命名为“Player_Red”,将Tag设为Player

2.3、创建互动性

添加运动脚本:选择Player_Red对象,点击AddComponent,搜索并点击Move脚本,或者,在Project窗口->Scripts->Movement文件夹将Move脚本拖动到Scene视图的对象上(对象上会显示脚本图标)。Push脚本添加同理。这里会同时添加Rigidbody2D脚本,Push/Move脚本依赖于Rigidbody2D。Rigidbody2D脚本会确保飞船遵守物理定律。(若脚本图标过大,可以在Scene视图的下拉菜单中,拖动3D Icons滑动条调整大小。)

第一次运行:在Game视图中,点击Play来测试游戏,此时飞船控制较难。

修改物理值:将Rigidbody2D->Gravity设为0,这里不需要重力。修改Rigidbody2D->Friction(10)、Move->Speed(8)、Push->PushStrength(4)来调整角色的移动。(Play模式下的修改不会保存。)

修改控制键:Move->TypeOfControl修改方向键/WASD控制,Push->Key修改控制按键。

2.4、添加障碍物

添加障碍物:障碍物创建通角色创建,将/Images/Asteroids/Asteroid2拖入Hierarchy窗口,并调整到适当的位置和大小。同时添加Rigidbody2D脚本,合理设置Mass、Friction、Grivity(0)。

添加碰撞:为障碍物和角色添加Polygon Collider2D,使之可以碰撞其他对象。

添加伤害:为障碍物添加Modify Health,使其对冲击到的游戏对象造成伤害/治疗。

添加伤害监测:为角色添加Health System,使之能够检测到伤害。该脚本不仅能给角色生命值,并切能够设定初始生命值Health。

:可以将该障碍物设为预制件Prefab,可以再复制障碍物后,同时修改所有的障碍物。

2.5、添加UI

添加UI:将UserInterface拖到Hierarchy中,UI自动出现Game视图中(Scene视图没有)。

2.6、添加游戏目标

添加收集物:收集物通过创建角色创建。将/Images/GameElements/Star拖入Hierarchy窗口,并调整到适当的位置和大小。

添加可收集性:为收集物添加Collectable脚本。

添加碰撞:为收集物添加PolygonColloder2D,使之可以监测到被收集。此时,需要使能IsTrigger属性。

Trigger是碰撞的特殊类型,使该物体不能被其他物体触碰,但是能监测到其他物体进入(即可以监测到碰撞行为,但是不发生碰撞结果)。例如,在终点放一个Trigger,当玩家触碰到,则通关,但是玩家不会看到任何碰撞发生。

2.7、胜利条件

目标分数:在UserInterface组件中的ScoreToWin属性设置为1(游戏目标),同时保证GameType属性为Score。在收集物的Collectable组件的PointsWorth属性设置为1(单次得分)。

2.8、主相机

在之前的案例中,会发生角色移动到视角之外消失不见的情况,这是因为主相机MainCamera没有跟随。

添加相机跟随:为MainCamera添加CameraFollow脚本,并选择目标Target为角色。

设置相机限制:通过Limits-UseBounds为相机设置边界,可以在Scene中直接拖动角标或者在Inspector中设置。此时在Game中,相机移动到边界后,不再向外移动。

3、Playground包的一些概念

3.1、Tag

在Inspector窗口中的Tag属性进行设置。

Tag可以将不同的对象分类,脚本也根据对象的tag执行动作。没有Tag的话,脚本将无法区分对象。

在碰撞中,很多脚本需要依赖正确的Tag进行工作。一般脚本不正常工作,都是Tag没有设置正确。

3.2、碰撞和触发

在Playground包中,使用碰撞来创建游戏性gameplay。碰撞,即两个对象接触到对方。触发,即一个对象进入另一个对象。

例如,碰到敌人受伤、碰到物品升级、收集硬币、把门撞碎并进屋等。或者,类似rogue类游戏中,设置一个对话线,当一个角色进入时,触发对话。

3.3、导入自定义图形

在Unity中使用自己的2D图形,只需要将之拖如Assets文件夹。图片将作为Sprite导入,并可以使用,使用方法同2.2、创建角色。

不是正方形的图片需要有透明性,否则,其他部分将会有白色背景。建议使用有透明性的.png.gif格式。Unity不支持动画.Gif。

3.4、UI

通过UserInterface预制件可以自动设置UI界面,同时可以设置角色数量、游戏模式、游戏类型。

游戏模式:Score得分模式,角色获得指定的分数,将赢得游戏。Life生命模式,角色的生命为0,将输掉游戏。Endless无尽模式,不会赢、输,游戏没有结束。

3.5、脚本介绍

playground-reference-guide

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值