Unity使用JSON存储实现背包功能
Unity使用JSON存储实现背包功能
前言
在Unity有五种常用的存储数据的方法,可以用来存储我们游戏的数据。
一、PlayerPrefs
这是Unity自带的一种用于本地持久化保存与读取的一个类,采用以键值对的形式将数据保存在文件中。
123456int IntValue;float FloatValue;String StringValue;PlayerPrefs.SetFloat("FloatKey",FloatValue); //存储float类型的值,对应的键为FloatKeyPlayerPrefs.SetInt("IntKey",IntValue); //存储int类型的值,对应的键为IntKeyPlayerPrefs.SetString("StringKey",StringValue); ////存储string类型的值,对应的键为StringKey
二、读取普通文本:TextAsset
12TextAsset text=(TextAsset)Resources.Load("Text") ...
如何制作一个Unity2D闯关游戏(五)
如何制作一个Unity2D闯关游戏(五)
回顾
在上一篇的教程里我们给Player添加了手机动画和受击反馈,以及添加了KillPlane来防止玩家调出世界,然后又加入了的重生点系统以及Gem和Cherry,增添了游戏的可玩性。
开始第五天的制作
上一篇我们增加了玩家的受伤反馈,但是一般的闯关游戏还会再添加一个无敌时间来保证玩家的游戏性。
添加无敌时间
我们打开 PlayerHealthController 脚本,我们无敌时间的功能在这里面来添加新的代码。
首先我们先添加两行定义,分别是无敌时间以及计数器,还需要一个SpriteRenderer,通过修改透明度来表示是否处于无敌状态。
123private readonly float invincibleTime =0.5f;//无敌时间private float invincibleCounter;//无敌时间计数器private SpriteRenderer spriteRenderer;
然后我们需要再 DealDamage 函数里把无敌时间赋值给计数器。
1234567891011121314151617181920212223 ...
如何制作一个Unity2D闯关游戏(四)
如何制作一个Unity2D闯关游戏(四)
回顾上一篇
上一篇我们添加了自定义场景的功能,新增了Spike尖刺系统,可以对玩家造成伤害,新增了玩家血量系统以及血量UI显示系统,让游戏与玩家具有了初步的互动性。
开始第四天的制作!
Player受击动画
上一篇添加了Player的扣血以及血量UI的更新,但是没有添加Player的受击动画。
在 Animation 窗口按照之前讲的方法创建一个新的 Clip,命名为 Player_Hurt,保存到合适位置,然后将受伤动画添加到上去。
受伤反馈
在动画添加完成之后,我们还要添加一个玩家被攻击之后的受伤反馈,使玩家在手上之后被弹开一定距离。
首先先给动画添加一个定义,private static readonly int Hurt = Animator.StringToHash("hurt");
然后我们在 PlayerController.cs 中添加三行定义。
123456//受伤反馈private readonly float knockBackLength = 0.25f; //受伤反馈间隔private reado ...
如何制作一个Unity2D闯关游戏(三)
如何制作一个Unity2D闯关游戏(三)
回顾上一篇
上一篇我们制作了Player的绝大部分动画,使我们的Player可以真正意义上的动起来,又添加了背景移动,使我们的背景可以一直循环移动,从而使得整个游戏世界更加真实。
开始第三天的制作
在完成了前两篇的内容之后,Player方面的内容我们已经大致完成,接下来我们将开始着重于关卡方面的制作。
当我们浏览完整个Sunny Land素材之后,会发现一个问题,这个素材包只有一个场景包含了关卡的场景内容,但是有许多场景内容的素材,那我们该如何制作属于自己独特的场景呢?这时候我们需要用到Unity内的一个工具来帮助我们完成自定义场景的搭建。
Tilemap的创建
在Unity的选项卡中依次选择 Windows -> 2D -> Tile Palette,打开平铺调色板窗口。然后再如下目录找到 SunnyLandTiles.png,"Assets\2D Platformer Assets\Graphics\Level Art\Tileset",点击 Create New Palette,然后将其拖入 Tile Pa ...
如何制作一个Unity2D闯关游戏(二)
如何制作一个Unity2D闯关游戏(二)
回顾上一篇
上一篇我们把Sunny Land素材从商店中下载并导入到Unity中,并且完善了场景的位置关系以及简单制作了人物的移动脚本。
开始第二天的制作!
这一篇我们主要来完善角色的动画控制以及添加背景的移动功能,来实现角色移动时相机跟随以及背景带来的一些视觉效果。
制作Player动画
首先我们先创建一个 Animator 命名为Player,并将其添加到 Player 上。
然后我们点击 Windows 选项卡,依次点击 Windows -> Animation -> Animator/Animation 打开 Animator 和 Animation窗口,并将其放在合适位置。
我们进入到 Animation 窗口,点击图示位置下拉选项卡,点击 Create New Clip 创建一个新的 Clip,然后将其保存在合适的位置。
本次我们主要制作三个动画,分别是 Player_Idle,Player_Run,Player_Jump,即空闲,跑步,跳跃这三个动画。
0:60为一秒,我们空闲状态总共有四幅图像,我们间隔10帧放 ...
如何制作一个Unity2D闯关游戏(一)
如何制作一个Unity2D闯关游戏(一)
项目说明
此项目为开源教学项目,也是我的学习日常记录,欢迎大家一起来探讨关于这个项目的内容以及一些修改意见,项目内的美术资源位Unity Store上免费资源。此教学适合有Unity和C#基础的同学,后期可能会更新添加一些API讲解。
前期准备
我用的 **Unity **版本是2021.3.16,然后编辑器是 JetBrains Rider,这个编译器我感觉还是很棒的,强烈推荐(学生可以免费使用)。
这是美术素材的链接,免费下载。商店里也有许多素材是免费的,可以拿来练手。
那么话不多说,开始第一天的制作!
项目创建
首先打开Unity创建一个 2D(URP) 项目。
在 Unity 上方选项卡中选择 Windows 打开 Package Manager,选择 Sunny Land,点击 Download 之后导入素材。
导入素材之后打开素材自带的 Starter_Scene 场景。
将Player放入场景
首先我们根据路径“Assets\2D Platformer Assets\Graphics\Player”在导入的素材包内 ...