基于Unity3D的游戏设计与实现

known 发布于 2025-08-25 阅读(406)

中图分类号:TP311.5;TP317.4 文献标识码:A 文章编号:2096-4706(2025)08-0089-04

Abstract:Role-Playing Game(RPG) is favored by players because of its rich storyline,in-depth character shaping and highly fre gameplay.The“Save the Home”game uses the Unity engine for game design and development.Through the overall designof thegame,theproductionoftegame modelandtheconstructionofthescene,aswellas thedevelopmentof thegames protagonist module,enemy module,combat module,UImodule,keymoduleandother modules,thepaperrealizes thefunctionsofcharactermovement,Acharacterpatrolavigationadattack,transmisionportalresponsesoundadlight response, camera scanning and so on. The game offers excellent fun, interactivity and diversity.

Keywords: game design; modeling; interactive function

0 引言

随着信息技术的快速进步和游戏产业的蓬勃发展,电子游戏已经成为人们娱乐和消遣的重要方式之一[。在这个多元化的游戏市场中,角色扮演游戏(RPG)因其丰富的故事情节、深入的角色塑造和高度自由的游戏玩法而备受玩家青睐。基于此,本文设计与开发了《拯救家园》这款RPG类型的游戏。使用Unity引擎和C#编程语言进行游戏开发,游戏融合了战斗、解谜和迷宫三种玩法,给玩家带来了丰富多样的游戏体验。战斗模式让玩家能够挑战不同的敌人,体验紧张刺激的战斗乐趣;解谜需要玩家开动脑筋,寻找路线解决关卡给出的难题;迷宫模式则提供了一个探索未知区域的机会。

1 游戏设计

1.1 游戏设计思路

作为一款RPG类型游戏,在保证游戏本身运行的稳健性之外,要想让玩家喜欢上这款游戏并对其整体提出高评价,做好游戏各方面的顶层设计是相当必要的[2]。在《拯救家园》游戏中,主要以对话方式推动游戏主线,玩法上创新融合了三种不同的元素,并将它们融入游戏的三关中。在第一关的玩法设计上采用了RPG游戏常设的战斗内容,并融入了“塔防”元素,玩家通过操纵游戏角色释放技能与敌人进行交战,同时保证保护目标不被摧毁。而第二关的玩法设计简单融入了“解谜”元素,玩家需要在空旷复杂的地形中寻找黯淡的红水晶并激活点亮,达到应点亮的数量要求后则算本关完成。在第三关中,则采用了“迷宫”元素,玩家需要在错综复杂的迷宫中找寻通向终点的道路。

要增加游戏对玩家的吸引力,一个引人入胜的剧情是不可或缺的。好的游戏剧情可以使玩家有较强的沉浸感,使之与角色达到共情的状态[3]。基于此,本游戏设计了以下剧情:豌豆小镇的魔法泉水干枯了,豌豆小镇的居民想了很多办法都没找回魔法水源。这时出现了一位超级英雄,她叫爱丽丝。她要通过传送门去闯过三个关卡并拿三把金钥匙,重新激活魔法泉水,豌豆小镇寻回水源来拯救家园。

1.2 游戏总体框架设计

本游戏的功能模块包含主角模块、敌人模块、摄

像机模块、加载模块、战斗模块、对话模块、UI模块、关卡管理模块、音乐模块、钥匙模块、存储模块。游戏的总体框架设计图如图1所示。

图1游戏总体框架图

在整个游戏系统中,主要围绕主角进行设计,场景中的模块也有着各自的功能。

主角模块:通过获取键盘输入来操纵主角移动、角色人物动画播放以及技能释放粒子效果播放,同时设置相关个人属性数值。

敌人模块:通过Unity导航系统完成寻路效果,遭遇主角时自动发起攻击,设置相关角色动画以及相关数值。

战斗模块:当主角与敌人发生战斗时,处理相关数值的变化,如“血量”“魔法值”等。

UI模块:制作UI面板显示相关数据以及完成交互效果。

音乐模块:自游戏运行起持续播放内置音乐。

钥匙模块:通过每个关卡所需的道具,添加相关游戏逻辑。

关卡管理模块:每个关卡设置一个本关管理模块,添加游戏逻辑脚本,管理本关各项调用所需的字段和方法。

摄像机模块:以主角为目标点,在第三人称视角下持续跟随主角。

1.3 交互功能设计

在游戏开始界面选择“开始游戏”一“新游戏”后则正式载入游戏。先与引导NPC进行对话,初步了解游戏剧情。结束对话后显示相关UI并进入第一关卡,完成第一关卡任务后拿到钥匙达成通关条件,二、三关卡以此类推。终点处游戏结算时判断是否达成游戏通关条件,若是则显示相应游玩数据并且显示通关成功,如图2所示。

图2游戏交互功能图

2 游戏功能实现

游戏系统所用到的游戏引擎是Unity引擎。所用的编程语言为C#,IDE(集成开发环境)为VisualStudio2022,采用Cinema4DR20.059来制作白模,后通过Substance3DPainter绘制并导出在Unity环境下可用的相关模型贴图,游戏人物模型使用VRoidStudio软件制作。

2.1模型制作与场景搭建

道路、山脉、丘陵等此类地形通过该工具下的“RaiseorLowerTerrain”功能,以调节笔刷大小、样式、力度的方式逐步雕刻出场景。树木、石块、地皮等则通过“PaintTrees”“PaintDetails”功能进行完善。最终将准备好的模型调整至合适位置并置入相应位置,完成三个主场景的搭建。三个场景图如图3所示。

图3游戏场景图

场景中所用建模主要运用Cinema4D软件制作所需的简易模型,包括“引导NPC星环”“金钥匙”“守护塔”“待激活水晶”等模型。这些模型导出为obj格式后,导入至Substance3DPainter(SP)中制作合适的贴图,最终导入Unity备用。制作的模型最终效果如图4所示。

图4游戏模型表

2.2 游戏功能模块实现

2.2.1 主角模块

根据对主角角色的分析,本次游戏为爱丽丝设置Move、Jump、Attack、Death四种状态,分别用来控制移动、跳跃、攻击、死亡[4。为了让主角“爱丽丝”能在场景中移动起来并应用适当的动画片段,需要为主角配上骨骼并找寻合适的动画片段,统一设置到Animator组件的Controller字段中,并配上驱动该动画的脚本。在爱丽丝角色的动画控制器中,在“BaseLayer”中新建一个“BlendTree”,将静止、前进、快速前进、倒退、快速倒退五个动画片段置入混合树中,其目的是通过一个参数快速简易控制人物行走状态变化。在“BaseLayer”中,将其他动画片段如技能释放动作、跳跃等加入控制器中,设置合适的过渡条件及参数,人物行走状态过渡至技能释放动作上的“HasExitTime”全部取消勾选,保证当获取相应键盘输入时可以立即响应相关动作。具体设置如图5所示。

图5爱丽丝动画控制器

设置完动画内容后,添加相对应的控制脚本。通过Input类来实现键盘对游戏角色进行上下左右的移动控制[5],同时在UpdateO生命周期中判断是否处于攻击状态下,否则,则执行移动方法。关键代码如下所示:

void Update {if (isAttack = 1) { HillyMove_keyinput;} change_iaAttackO;}

void HillyMove_keyinput( {if (Input.GetKey(KeyCode.W)) {if(Input.GetKey(KeyCode.W) amp;amp; Input.

GetKey(KeyCode.LeftShift)) {anim.SetFloat(\"speed\",Mathf.Lerp(anim.

GetFloat(\"speed\"),1of,i *Time.deltaTime)); transform.Translate(O, 0, moveSpeed*3);} else{anim.SetFloat(\"speed\",Mathf.Lerp(anim.

GetFloat(\"speed\"), 5f,i * Time.deltaTime)); transform.Translate(0, 0, moveSpeed);} } if (Input.GetKey(KeyCode.S)) {if(Input.GetKey(KeyCode.S)amp;amp; Input.

GetKey(KeyCode.LeftShift)) {anim.SetFloat(\"speed\",Mathf.SmoothDamp(anim.

GetFloat(\"speed\"), -1of,ref yVelocity,0.3f)); transform.Translate(0, 0, -moveSpeed*3);}

2.2.2 敌人模块

第一个关卡中设置了三条线路,分别会出现三种不同的敌人。敌人怪物的模型采用素材“MonsterUltimatePackCuteSeries”中的蝙蝠、黄鸟、蜜蜂三个怪物。在第一关的地图中,敌人有守卫和巡逻两种状态。在守卫状态下,玩家进入敌人的攻击范围就会引起追击,直到离开攻击范围;在巡逻状态下,玩家经过敌人的攻击范围会引起敌人注意,导致攻击,直到离开攻击范围。以蝙蝠怪为例介绍敌人模块,黄鸟、蜜蜂相关设置相同。在蝙蝠怪模型上添加Tag标签“monster”,同时添加合适大小的碰撞器,以及设置怪物攻击、死亡、移动动画片段。因敌人索敌需要用到Unity本身的导航系统,因此在关卡一中将地形Bake导航网格,包括蝙蝠怪本身实例上添加NavMeshAgent组件。然后编写影响敌人的控制脚本,关键代码如下所示:

private void Awake( {agent GetComponent(; hilly Σ= Σ GameObject.Find(\"Hilly\"); anim Σ= Σ GetComponent; hilly ameObject.Find(\"Hilly\") GetComponent void Start( {if(SceneManager.GetActiveScene.name = = \"LevelOneScene\") {if (this.transform.GetChild(O).GetChild(O).name 蝙蝠血量\") {this.GetComponentlt;第一关蝙蝠怪计数 gt;0 enabled true}}

2.2.3 战斗模块

该模块主要涉及在第一关中主角爱丽丝和敌人发生交战时产生的数据变化。例如,当爱丽丝释放技能攻击敌人时,敌人会因受攻击后判断受到了什么技能的攻击,并引用其伤害数值进行血量计算。当敌人血量归零后将触发死亡判定[。设置各技能伤害,并实时反馈后端数据至UI中。关键代码如下所示:

private void OnEnable( {hpBar Σ= Σ GameObject.Find(\"血量\").GetCompone nt; mpBar GameObject.Find(\"魔法值\").GetCompon ent(; hpT Σ= Σ GameObject.Find(\"血量百分比 \").GetComponent(; GameObject.Find(\"魔法值百分比 \").GetComponent(O}

2.2.4 UI模块

游戏的UI界面可以使玩家更加快速直观地了解游戏的风格及制作水平。游戏的UI界面可以为玩家提供交互的方式,让玩家能够与游戏世界进行互动,并且可以帮助玩家理解游戏规则,同时让开发人员接收到玩家反馈的信息[。在UI设置中,主要涉及各种情况下UI的响应显示,包括敌人血量条显示、主角的UI显示、进入新的场景(关卡)时系统提示的UI显示,以及主菜单各个按钮的UI显示响应。游戏运行页面有开始、设置、退出三个游戏按钮。通过设置按钮可以设置游戏的音量和背景音乐。游戏的封面页和运行页如图6、图7所示。

图7游戏运行页

2.2.5 钥匙模块

当前关卡完成任务目标后,当确认完成时将触发钥匙显示的方法。玩家可以控制主角爱丽丝走进钥匙并发生碰撞,此时调用碰撞器的相关函数进行数据统计[8,以此反馈至每个关卡的传送门上。只有拾取了钥匙后,当玩家站在传送门前才会显示交互UI,拥有进入下一关卡的资格。

2.2.6 关卡管理模块

一个战斗关卡可以包含一个或多个场景,而关卡运行机制则融合了至少一个场景的相关元素[9-10]。该游戏中有三个关卡。第一个关卡中实现在前置条件下刷新三次不同波次,以及触发相应的对话模块小节。第二关卡中实现监测该关卡中水晶激活数量是否达到通关目标,在满足目标时调用系统相应对话小节。第三关卡中实现监测该关卡中是否在规定时间内通过迷宫达到通关目标。最后实现触发对话小节以及终点触发游戏结束进行游戏结算。

3结论

本次设计通过使用Unity引擎和C#编程语言进行游戏开发。经过需求分析、总体设计、各个模块以及细节设计制作,最后完成系统测试。开发了一款融合战斗、解谜和迷宫三种玩法的RPG冒险游戏,给玩家带来了丰富多样的游戏体验。战斗模式让玩家能够挑战不同的敌人,体验紧张刺激的战斗乐趣;解谜需要玩家开动脑筋,寻找路线解决关卡给出的难题;迷宫模式则提供了一个探索未知区域的机会。游戏界面简洁,上手简单且交互性强,可玩性很高。

参考文献:

[1]殷爽,邵金侠,胡蓉,等.Unity3D引擎开发RPG游戏“武魂之战”的设计与实现[J].现代工业经济和信息化,2021,11(7):82-84.

[2]郭欣桐.基于Unity的飞船大战游戏设计与开发[J].科技资讯,2021,19(11):67-69.

[3]李晓蕾,王守佳,刘钰周,等.基于Funcode平台的《华夏宝藏》游戏设计与开发[J].现代计算机,2023,29(10):98-103.

[4]郑清生,代君.基于Unity3D的初中数学教育游戏设计与开发[J].中国教育技术装备,2022(3):36-41.

[5]王晓芳,孟凯波,张腾飞.基于Unity3D的“神勇归来”RPG类游戏设计与实现[J].现代信息科技,2023,7(15):16-20.

[6]徐杰,孙大洋,胡怡.基于倾斜摄影建模和Unity引擎的虚拟校园设计与实现[J].现代信息科技,2023,7(16):39-44.

[7]马晓萍,轩莹莹.基于Unity3D的电子游戏设计与实现[J].电子技术,2024,53(6):75-79.

[8]杨淮敏,邱树伟.基于Unity3D的冒险游戏的设计与实现[J].现代计算机,2023,29(13):73-78.

[9]何柳青.基于Unity3D的动作角色扮演游戏战斗系统研究与开发[J].现代信息科技,2023,7(24):1-5.

[10]任奇.《女娲补天》数字游戏创作研究[D].兰州:兰州交通大学,2023.

作者简介:巩云飞(1981一),女,汉族,山东淄博人,副教授,硕士研究生,研究方向:数字媒体技术。

标签:  游戏 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor