Unity 2D RPG Kit 学习笔记
学习资料:
-
B站教学视频:https://www.bilibili.com/video/BV1dC4y1o7A5?p=1&vd_source=707ec8983cc32e6e065d5496a7f79ee6
-
2D RPG Kit Documentation.pdf文档
1、2D RPG Kit Documentation文档
1.1、Scenes/TitleScreen 开始菜单工程
1.2、https://itch.io 素材网站
1.3、操作说明:
移动:使用箭头键或W、A、S、D来移动你的角色在游戏世界中。
互动:按下回车(或Enter)键与游戏中的物体和NPC互动。
打开菜单:按X键访问游戏菜单,在那里你可以管理你的物品栏, 查看角色状态,并调整设置。
取消/返回:使用Esc键取消操作或返回上一个菜单。
1.4、工程目录说明:
Animations
动画:此目录存放所有动画,包括玩家、战斗和特效的动画。角色战斗和敌人的特定动画被整齐地组织到子文件夹中。
Audio
音频:在这里找到所有的背景音乐和音效,旨在增强您的游戏氛围。
Editor
编辑器:包含扩展Unity检查器的脚本,用于各种组件,简化定制过程。
Fonts
字体:游戏中使用的字体的首选文件夹,确保游戏视觉呈现的一致性。
Materials
材料:包括精灵的材料,使光照效果能够为您的游戏视觉增添深度。
Prefabs
预制件:准备在游戏中使用的预制资产。
Battle
战斗:存储所有以战斗为中心的预制件,包括玩家角色、敌人和效果。这是您扩展游戏战斗系统的地方。
Items
物品:包含消耗品和装备的预制件。随着游戏的增长,您的物品列表也会增长。
Main
主要:包含场景管理的基本预制件,具有“主对象加载器”以实现跨场景的自动加载。
Objects
对象:收集通用预制件,便于场景增强。
Scenes
场景:按不同目的组织,便于访问和编辑。
Demo
演示:与演示游戏相关的所有场景都在这里,作为实际参考。
System Maps
系统地图:包括不可玩场景,如标题和游戏结束屏幕。
World Maps
世界地图:为您的游戏场景提供专用空间,具有复制和编辑的模板。
Scripts
脚本:2D RPG工具包的核心,包含所有使游戏栩栩如生的脚本。
Sprites
精灵:在这里,您将找到分类到子文件夹中的图形和UI元素,以便于导航。
1.5、Player Prefab 玩家预制体
- 地址:Assets/2DRPGKit/Prefabs/Main
- Player Controller
玩家控制器脚本:附加到玩家预制件上,这个脚本允许开发者直接从Unity检查器调整玩家移动速度,提供了一个简单的方法来微调玩家的移动性。 - 自动加载:无需手动将玩家预制件添加到每个场景中。"主对象加载器"预制件自动化了这个过程,确保玩家预制件始终被加载到每个场景中。
- 在游戏过程中,您可以在Unity层次结构中的DontDestroyOnLoad -> Player(Clone)下找到玩家预制件。
- 动画设置:玩家角色装备了四个方向的行走和闲置动画,通过Unity的混合树机制实现。这个设置位于Assets/2D RPG Kit/Animations/Player目录下。
- 序列帧人物图片:Assets/2D RPG Kit/Sprites/Characters/Character1
- Player Start作为玩家的起点位置
1.6、创建场景
- 复制Scenes/Template Scene场景到新建的World Maps文件夹下
- Camera相机:场景包括一个自定义相机设置,专为2D角色扮演游戏的视觉需求量身定制。这个相机确保你的场景从最佳视角观看。
- Main Objects Loader
主要对象加载器:此组件自动将必要的预制件(如玩家预制件)加载到您的场景中。它通过处理必要游戏对象的包含来简化场景设置,让您能够专注于设计场景的独特方面。 - Tilemap
瓦片地图组件:模板场景中预装了瓦片地图组件,可以立即进行关卡设计。瓦片地图是一个多功能的工具,用于创建多样化和复杂的景观、结构和内部,为您的创造力提供了广阔的画布。
1.7、Main Objects Loader
- 是一个关键预制件,位于Assets/2D RPG Kit/Prefabs/Main目录下。其主要功能是确保将必要的预制件无缝集成到每个可玩场景中,自动化原本手动且重复的过程。
- 配置:无需对“主对象加载器”进行大量配置。其默认设置旨在满足典型RPG场景的一般需求。然而,如果需要自定义,可以参考它加载的每个预制件的文档。
1.8、Tilemaps
- Ground Layer 2
在玩家下方:位于“Ground Layer 2”及以下的图块会在玩家精灵下方渲染,形成场景的基础。 - Solid Layer 1
在玩家之上:"Solid Layer 1"及以上的图块会挡住玩家精灵,非常适合用于树木和建筑物等头顶物体。 - Background Layer
背景层:融合了“视差效果”组件,实现了视差滚动,为场景背景增添了深度和动感,显著提升了沉浸感。
1.9、Camera
- Camera Controller
相机预制件配备了“相机控制器”脚本,这是一个专为动态场景集成设计的工具。主要功能包括边界计算和背景音乐设置,确保您的游戏场景在视觉上受到限制,在听觉上得到丰富
自动瓦片地图分配:当使用提供的模板场景时,摄像机将自动识别并遵守场景的瓦片地图边界。此功能简化了初始设置,让您可以专注于场景设计,而无需担心摄像机的限制。 - 瓦片地图用于摄像机
从场景的瓦片地图中选择一个图层,然后将其拖动到附加到摄像机预制件的“Camera Controller”脚本的“Tilemap”字段中。这个动作使得脚本能够计算并执行地图边界,防止玩家越过指定的游戏区域。
- 声音:
场景特定音乐:摄影机控制器脚本还便于为每个场景选择背景音乐。通过在“Audio Manager”中输入与曲目对应的数字,你可以定制听觉体验以匹配场景的氛围。
“Audio Manager”是管理和播放游戏中的音乐和音效。它位于Assets/2D RPG Kit/Prefabs/Main目录下,预装了Assets/2D RPG Kit/Audio目录中各种免费使用的音频轨道和音效。
1.10 、Control Manager
- Mobile选项
一旦找到了“Control Manager”预制件,我们需要在它的检查器面板中找到一个名为“mobile”的复选框。这个复选框的作用是激活游戏内的触摸界面。当你在编辑器中勾选这个复选框后,你的游戏就会准备好接受触摸输入了。
请注意,虽然在Unity编辑器中我们是通过鼠标来模拟触摸屏体验的,但这并不会影响最终在移动设备上的表现。勾选“mobile”复选框后,你就可以开始设计和测试适用于触摸屏的控制方式了。
在Unity中导航到窗口导航栏,选择“移动输入”,然后选择“启用”。这一步对于确保Unity正确处理触摸输入至关重要,从而在移动设备上实现无缝控制。
1.11、Teleport to
“传送至”预制件是在2D RPG工具包中创建场景间无缝过渡的关键资产,有助于创建相互连接的游戏世界。位于Assets/2DRPGKit/Prefabs/Objects中,该预制件允许开发者定义场景内部和场景之间的特定入口和出口点,增强了游戏的导航流程和探索动态。
将Prefab放置在场景中:将“传送到”Prefab拖放到您的场景中。将其放置在希望建立另一个场景入口或出口的所需位置。
1.12、Game Manager
“游戏管理器”预制件是2D RPG工具包的核心,集中控制关键的游戏机制,如玩家统计数据、世界设置以及宝箱、任务和事件的管理。该预制件位于Assets/2D RPG Kit/Prefabs/Main目录下,对于在不同场景间保持游戏状态一致性至关重要,无需手动放置,这要归功于“主对象加载器”。
- Character Management
角色管理:在初始化部分,脚本维护了一个角色及其状态的列表。这些角色是玩家的潜在队友,被组织为“游戏管理器”预制体的子对象。这种设置允许在整个游戏中轻松跟踪和更新角色状态。
- Currently Active Menus
当前激活的菜单:此功能通过允许开发者在任何给定时刻验证哪些菜单是激活的,来帮助调试,确保用户界面元素的行为符合预期。 - Character Bools
角色布尔值:对于调试玩家移动很有用,本节将跟踪是否存在任何当前阻止玩家移动的条件,便于快速识别和解决问题。 - Items
现有的游戏物品:脚本包含游戏中所有可用物品和装备的全面列表。开发者可以通过将创建的物品预制件拖放到列表中来添加到这个列表,确保这些物品在游戏中可以访问。
1.13、Character Status
“角色状态”脚本是2D RPG工具包中的一个多功能工具,旨在自定义可玩角色,允许详细定义他们的优势、劣势以及整体进步。该脚本附加到预定义的角色对象上,这些角色对象作为子对象存储在“游戏管理器”预制件下(资产/2D RPG工具包/预制件/主要)。这些角色,包括主角和潜在的队伍成员,在整个游戏中构成玩家团队的核心。
1.14、UI Management
- 集中化UI控制:通过集中管理用户界面,"UI"预制件简化了开发过程,允许轻松实现和修改游戏中的UI元素。
- 自动场景集成:多亏了“"Main Object Loader”,无需手动将“UI”预制件添加到每个场景中。它会自动加载,确保无论场景如何转换,UI始终可用。
- 持久跨场景: "UI"预制件被设计为在场景加载时保持持久,在游戏过程中层次结构中的DontDestroyOnLoad -> UI(Clone)下可以找到。这种持久性是保持连贯用户体验的关键,菜单状态和UI设置在不同的游戏环境中保持不变。
1.15、Screen Fade Transitions
屏幕淡入淡出功能是2D RPG工具包中一个关键的视觉效果,它在场景转换过程中增强了玩家的体验。这个效果由屏幕淡入淡出脚本管理,该脚本附加到UI预制件的"Screen Fade"子对象上。这个脚本的多功能性使其可以应用于各种游戏情境中,提供一个平滑的过渡效果,显著提升游戏的视觉质量和感觉。
1.16、Dialog Manager
“对话管理器”脚本是2D RPG工具包的一个基本组成部分,旨在通过UI预制件中的“对话框”子对象来管理游戏中的对话。 这个功能对于讲故事至关重要,允许开发者向玩家展示对话、角色名称和其他叙事元素,丰富游戏的沉浸式体验。
对话管理器在如何向玩家展示对话方面提供了灵活性。开发者可以选择调整对话框及其文本组件的大小,以适应较长的对话或调整风格偏好,确保文本既易于阅读又美观。
1.17、 Menus, Shop, Inn, Rewards, and Saving
2D角色扮演游戏套装包括一套脚本,专门用于管理和显示各种游戏界面,如游戏菜单、商店、旅馆、奖励屏幕和保存功能。这些脚本对于向玩家展示准确的数据和选项至关重要,确保流畅直观的用户体验。
1.18、Creating and Managing Items in the 2D RPG Kit
在2D角色扮演游戏工具包中的物品作为消耗品和可装备物品,可以显著影响游戏玩法,为玩家提供治疗、战斗和角色增强等方面的资源
这些预定义的物品可以为开发者提供基础,以便他们能够根据自己的游戏需求进行定制和扩展,从而实现丰富多样的游戏道具系统。
还包括装备等
1.19、Chest Manager
箱子管理器:实施宝藏和奖励 “箱子”预制件和“箱子管理器”系统是2D RPG工具包的重要组成部分,旨在通过物品或金币奖励玩家,增强游戏世界内的探索和互动。箱子预制件存储在Assets/2D RPG Kit/Prefabs/Objects下,可以轻松添加到任何场景中,为玩家提供探索游戏环境每个角落和缝隙的具体激励。
1.20、NPC
2D RPG工具包包含了多种可重用的预制件,用于“店主”、“旅馆老板”和“NPC”,每个都能够在你的游戏中提供独特的互动体验。这些预制件位于Assets/2D RPG Kit/Prefabs/Objects目录下,可以直接加入到场景中,根据它们的设置提供对话、商店或旅馆互动。
1.21、Pushable Blocks
“可推动的方块”预制件提供了一种动态的方式,为您的游戏环境添加互动元素,允许玩家只需走进方块就可以推动它们。这个功能可以用来解决谜题,阻挡或打开路径,并为您的关卡增加一层互动性和挑战性。该预制件位于Assets/2D RPG Kit/Prefabs/Objects目录下,设计用于直接集成到任何场景中。
1.22、Battle Manager
“战斗管理器”预制件是2D RPG工具包的关键组件,集中控制回合制战斗机制、战斗菜单和其他相关设置。它存储在Assets/2D RPG Kit/Prefabs/Main中,有助于在游戏中实施战斗,无论是随机发生的还是由特定事件或碰撞触发的。
1.23、Battle Characters
在2D RPG Kit中,战斗角色在定义战斗动态方面起着至关重要的作用。 这些角色,无论是盟友还是对手,都由位于Assets/2D RPG Kit/Battle/Characters中的预制件(prefabs)表示。附加到这些预制件上的“Battle Character”脚本对于设置每个参与战斗的角色的属性和行为至关重要。
1.24、Developing Enemies for Battle in the 2D RPG Kit
在2D RPG工具包中,敌人是游戏战斗系统的重要组成部分,为玩家提供挑战,并丰富游戏的叙事和世界观。敌人预制件存储在Assets/2D RPG Kit/Battle/Enemies目录下,设计得非常灵活,允许开发者使用"Battle Character"脚本进行定制,以创建各种各样的对手。
1.25、Configuring Playable Characters for Battle
配置战斗中的可玩角色 在2D RPG Kit中,可玩角色是游戏战斗系统的核心,为玩家提供了一支需要在战斗中管理和控制的队伍。这些角色由位于Assets/2D RPG Kit/Battle/Characters中的预制件定义,并使用"Battle Character"脚本进行配置。与敌人不同,这些角色直接受到玩家决策的影响,从攻击到使用技能和物品。
1.26、Battle Effects
在2D RPG Kit中,视觉和音频效果在增强战斗体验方面发挥着重要作用,为技能使用和战斗中的其他动作提供了清晰且有力的反馈。这些效果以预制件的形式存储在Assets/2D RPG Kit/Battle/Effects文件夹中,它们的实现涉及视觉动画和音效,以创造一个动态且引人入胜的战斗氛围。
1.27、 Skills in the Battle
技能是任何角色扮演游戏(RPG)战斗机制中不可或缺的一部分,为玩家和敌人提供了除基本攻击之外的各种行动。在2D RPG工具包中,技能是直接通过附加到“战斗管理器”预制件的“战斗管理器”脚本来配置的。这种方法允许对游戏中使用的所有技能进行集中管理,便于轻松更新和添加。
1.28、Battle Areas
“战斗区域”预制件是2D RPG工具包中的一个强大工具,用于在游戏地图中创建玩家可以体验随机战斗遭遇的区域。该预制件位于Assets/2D RPG Kit/Prefabs/Objects目录下,可以轻松地集成到场景中,并根据所需的玩法动态进行配置。
1.29、 Quest Manager
任务是吸引玩家参与RPG游戏玩法的基本元素,为玩家提供推动故事发展的目标、挑战和奖励。2D RPG工具包通过"任务管理器"脚本促进任务管理,该脚本包含在"游戏管理器"预制件中。这个系统允许集中跟踪已完成和进行中的任务,确保玩家在游戏世界中导航时有一个连贯的进展。
1.30、Event Manager
“事件管理器”脚本位于“游戏管理器”预制件内,它在协调游戏中事件的进展中扮演着关键角色。它的功能类似于“任务管理器”,它提供了一个结构化的系统来跟踪进行中的和已完成的活动,确保叙事元素、过场动画和其他重要的游戏里程碑能够无缝整合。
访问事件管理器:在Assets/2D RPG Kit/Prefabs/Main中找到“游戏管理器”预制件。打开附加到它的“事件管理器”脚本,在Unity检查器中开始配置游戏事件。
如何实施“事件对象激活器”
● 放置预制件:将“事件对象激活器”预制件拖放到你的场景中。将其放置在对象的激活或停用将影响游戏玩法或叙事进程的位置。
● 配置激活条件:
1.激活/停用对象:首先,我们需要将目标游戏对象拖放到“激活对象”字段中。这个对象将根据事件的完成状态受到影响。
2.检查事件:接下来,我们需要指定触发游戏对象激活或停用的事件名称。这就像是我们设置一个开关,当某个特定的条件满足时,开关就会启动。
3.激活逻辑:现在,我们要决定是否在事件完成后激活游戏对象。如果想要对象在事件完成后激活,就勾选“完成后激活”。如果想要对象停用,就保持这个选项不勾选。
4.延迟激活/停用:有时候,为了让游戏更有叙事感或者戏剧效果,我们可能需要在事件发生后有一段延迟才激活或停用对象。这时候,我们就需要启用“激活前等待”,并设置一个“等待时间”,单位是秒。
● 使用“Event Object Activator"
1.叙事整合:使用激活器让游戏世界随着故事发展而演变。例如,在一个关键事件后解锁一个新区域,增强了进步和成就感。
2.给玩家的反馈:确保游戏环境的变化能够被玩家注意到。使用视觉或听觉提示来吸引玩家对新激活或停用的对象的注意。
● Common Events
该预制件存储在Assets/2D RPG Kit/Prefabs/Objects下,可以轻松地集成到任何场景中,以触发特定事件或环境变化,增强叙事和游戏体验。
1.31、Setting Up a Title Screen
“Title Scene”作为通往你的游戏的入口,为玩家提供开始新游戏或加载现有存档数据的初始选项。该场景位于Assets/2D RPG Kit/Scenes/System Maps中,对于设定正确的第一印象和无缝引导玩家进入游戏体验至关重要。
1.32、 Input Settings
在2D RPG工具包中,管理玩家输入对于创建流畅直观的游戏体验至关重要。Unity的输入管理器允许你定义和自定义游戏中各种动作的按钮映射,确保兼容键盘和摇杆控制。以下是2D RPG工具包提供的默认按钮设置的概述,以及你如何在Unity的输入管理器中确认或修改这些设置。
1.RPGMenuPC: 当你想在PC上打开游戏菜单时,只需按下键盘上的"X"键即可。
2.RPGMenuJoy: 如果你使用的是游戏手柄,那么按下手柄上的第3个按钮就可以打开游戏菜单。
3.RPGConfirmPC: 在PC上,当你需要与游戏中的物体进行互动时,按下键盘上的"Return"键即可。
4.RPGConfirmJoy: 使用游戏手柄时,按下手柄上的第1个按钮可以与游戏中的物体互动。
5.RPGCancelPC: 如果你想取消某个动作或关闭菜单,在PC上可以按下键盘上的"Escape"键。
6.RPGCancelJoy: 使用游戏手柄时,按下手柄上的第2个按钮可以取消动作或关闭菜单。
7.Horizontal: 这个指令用于水平移动玩家角色。你可以使用键盘上的左右箭头键,或者"A"和"D"键来进行操作。当然,如果你使用游戏手柄,也可以通过摇杆来实现水平移动。
8.Vertical: 这个指令用于垂直移动玩家角色。你可以使用键盘上的上下箭头键,或者"W"和"S"键来进行操作。同样地,使用游戏手柄时,摇杆也可以控制垂直移动。
9. “Edit” > “Project Settings” > “InputManager” 打开 Input Manager.
2、修改分辨率
CameraController.cs
// set the desired aspect ratio (the values in this example are
// hard-coded for 16:9, but you could make them into public
// variables instead so you can set them at design time)
float targetaspect = 16.0f / 9.0f;
3、TileMap操作
https://www.bilibili.com/video/BV1Mb411H7iV/?spm_id_from=333.337.search-card.all.click&vd_source=707ec8983cc32e6e065d5496a7f79ee6
3.1、制作Tile Palette,瓦片面板
- 导入Tilemap的图片,比如
- 在图片里填写单元格的宽度
- 进入到Sprite Editor,需要在包管理器里安装Sprite的工具,在工具里选自动切割
- 安装Tile Palette,在Tile Palette窗口中,创建New Palette,保存在一个文件夹中(后面生成的文件会比较多)
- 拖动之前创建的sprite图片,在tile palette窗口中,选择创建的目录,会自动生成Tile Palette,瓦片画板。
3.2、制作规则瓦片的动画 - 新建规整瓦片
- 选择Animation模式,设置速度,拉入序列帧
- 建立Tile Palette,并拖入Rule Tile
3.3、制作瓦片动画 - 拖入序列帧到项目,并设置好图片大小
- 建立Animated Tile
- 投入序列帧到Animated Tile中
- 设置下速度为50左右
- 建立Tile Palette,并拖入动画瓦片
4、改变默认的镜头模式,比如左右镜头移动,上下不移动
CameraController.cs
- 第1条锁定了y轴的移动,第2条屏蔽了开始的镜头重定位