| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

基于Unity3D的多视角悬浮岛生存冒险类游戏的设计与开发

平***苏

贡献于2021-08-16

字数:20296



基Unity3D视角悬浮岛生存险类游戏
设计开发

Design and development of survival adventure
game of floating island based on Unity3D




容摘

着年互联网技术发展进步游戏产业迎阳时期深入解研究生存险类游戏市面情况结合目前游戏市场热点玩家兴趣课题维度功创新方面出发开发程中考虑期开发需求结合框架模块化思维功逻辑解决开发期会带开发隐患
项目通UI部分结合部分进行开发UI部分结构清晰层级明显结合MiniMVCPanelMgr面板理系统解决游戏UI框架结构问题通射线检测功设计系列检测机制利射线返回信息反馈结合FSM限状态机控制AI行模拟出Unity中导航系统效提高AI导航设计灵活度引入ObjectPool功利ObjectPool统理游戏象存分配合理回收利游戏象资源
项目基游戏中出现种难题通研究分析问题特性寻找出佳解决方案实现游戏中模块机结合

关键词: 生存险 沙盒游戏 算法设计 Unity3D 体素建模










Abstract

With the development and progress of Internet technology in recent years the game industry has also ushered in a rising sun After indepth understanding and research of the survival and adventure games on the market combined with the current hot spots in the game market and player interests this topic starts from the multidimensional multifunctional and multiinnovation aspects and considers later development needs in the development process Use the framework and the functional logic of modular thinking to solve the hidden development risks that may be brought later in the development
This project is developed through the UI part in combination with other parts The structure of the UI part is clear and the level is obvious The combination of MiniMVC and PanelMgr panel management system can solve the structural problems on the game UI framework through the ray detection function a series of detection mechanisms are designed to use the information returned by the ray Feedback and combined with the FSM finite state machine to control the behavior of AI simulate the navigation system in Unity effectively improve the flexibility of AI navigation design and introduce ObjectPool function use ObjectPool to uniformly manage the memory allocation of game objects rationally recycle and reuse games Object resources
This project is based on various problems that arise in the game Through research and analysis of the characteristics of these problems the best solution can be found as much as possible to achieve the organic combination of various modules in the game

Key words: Survival adventure Sandbox game algorithm design Unity3D Voxel modeling



目 录

第章 绪 1
11选题意义目 1
12文献综述 1
13研究现状 1
14创新思路 2
第二章 游戏功UI设计 3
21背包系统 3
211背包介绍 3
212物品选项 3
213物品拖拽 4
214物品信息 4
215 AI建筑物背包 4
216背包UI布局设计 5
217物品JSON数 5
22物品合成系统 7
221物品合成系统介绍 7
222合成系统UI设计 7
223合成选项 8
23工具栏 8
231工具栏介绍 8
232工具栏UI设计 9
24物品操作提示 9
241物品操作提示介绍 9
242物品操作提示UI设计 9
25图 10
251图介绍 10
252图功 10
26菜单选项 11
261菜单选项介绍 11
262菜单选项功 11
27面板理器 11
28角基控制 12
281角基控制介绍 12
282基控制 12
29建造模块 13
291建造模块介绍 13
292建造材料 13
210场景资源 14
211物理碰撞层级 15
212游戏键汇总 16
第三章 设计模式核心算法 18
31 MiniMVC 18
32 场景加载 20
321场景加载介绍 20
322异步加载 20
323异步加载实现 20
33 存象池 22
331象池介绍 22
332象池实现 22
34 AI控制 23
341 FSM限状态机 23
342 射线检测实现寻路避障 25
35 接口里式转换原 28
351 接口里式转换原介绍 28
352 手部控制权 28
353 交互物体 29
36 工具类 30
第四章 游戏界面环境展示 32
41 游戏界面 32
42 加载界面 32
43 游戏形 33
44 资源获取 33
45 UI面板 33
46 建筑物 34
结 35
参 考 文 献 36
致谢 37





第章 绪

11选题意义目
选择该选题目两方面希学三年时间学知识量发挥出基础通研究学更新知识选题中学未学知识占半适合作研究课题知道果目标设定太高选题研究程中容易受挫导致信心受击该研究面工作受影响选题设定太简单行样学什知识更说研究综合考虑设定较合理难度符合跳跳够着项目中模块设计实现程中加限制量设计模式优化功代码提高代码利率提升呈现开发力项目中量框架设计模式程序员力金字塔中力层次三层熟悉程序法实现种功模块没考虑程序框架性拓展性二基础利框架设计模式等程序设计思想提高代码质量降低代码理解成程序拓展性做准备项目期越做越简单三计算机图形学努力边努力说学期间相应计算机图形学基础知识真正想解精髓需量时间精力学数学物理知识会许高深数学物理计算次课题算二阶段三渡

12文献综述
游戏中控制方式第称第三称控制参考量第称游戏文献特FPS类型游戏身玩少第称射击游戏算该类型游戏较熟悉部分射击类游戏操作控制方式异现市场算成熟玩法量参考优化操作手感体验选题中网络模块支持局域网中进行联机参考少文献解流做法结合学输出优方案游戏玩法采生存险式玩法说玩家会长时间呆区域通断探索未知领域刺激玩家新鲜感里参考险类漫游类游戏

13研究现状
该研究分三阶段前期功制作阶段中期功调整拓展阶段期功优化体验优化阶段目前研究处中期阶段选题中部分基功已实现出该选题包含较模块开发前期中功分成具体模块样做什处呢?思路清晰适合整理流程游戏中涉量功模块果进行相应理仅容易乱利开发二程序开发框架思想设计模式通前总结验快速梳理功模块独立开围绕具体功进行开发三重目程序设计中四核心思想:高聚低耦合易拓展移植说四思想实间相互联系相互促进衡量款程序设计项目重评估标准该选题中细分层先UI(2D)3D客户端服务端然分场景分模块模块许样起貌似操作起繁琐较项目说准备工作做足正谓万丈高楼始基石断添砖加瓦乐高积木样部分整体慢慢呈现出

14创新思路
该选题创新场景设置场景背景天空游戏场景发生空岛空岛未知量波动推天空维持相长时期空岛悬浮空中原磁悬浮原理角探明空岛维持长时间悬浮真相前空岛解空岛部构造外部相互作增加游戏中确定性会里边加机元素类似现阶段热门Roguelike类型游戏增加游戏新鲜感

















第二章 游戏功UI设计

21背包系统
211背包介绍
背包放置存储角色拥物品时通键I键开背包界面查身拥物品关闭背包方式两种:次键I键关闭二通退出键Esc键关闭背包
背包存储物品数量限物品物品格子中限叠加增加物品存储便利性玩家需担心背包溢出导致物品法时存储起
212物品选项
物品4中操作选项通鼠标悬停应物品鼠标右键开该物品操作选项四种选项分:转移拆分丢弃提高户体验物品法执行操作时候应操作置灰色提醒玩家法进行该项操作否正常状态显示外常操作选项配置相应快捷键鼠标悬停某物品应快捷键快速该物品执行应操作
图21 物品选项

表21 物品右键选项
操作项
快捷操作(快捷键)
备注

E键
该物品果子果子食物钮食果子
转移
T键
转移该物品象背包操作台储物箱中
拆分

拆分物品游戏中常操作物品叠加起玩家需丢弃部分物品部分物品存储储物箱中时该操作物品进行拆分拆分默认拆分出前数量半手动修改拆分数量
丢弃
O键
需物品丢弃
213物品拖拽
转移物品:通鼠标左键拖动物品存储功背包储物箱时相转移该物品储物箱中
放置工具栏:许物品需放置工具栏中通拖动物品放置工具栏槽中便进行武器类型物品:斧头事先放工具栏然进行
214物品信息
玩家刚开始接触游戏时物品作十分解需提供应信息玩家便增加玩家游戏物品解
鼠标悬停某物品会弹出信息窗口物品信息包括:物品名称物品描述物品合成信息(物品合成需材料需数量已拥数量)合成物品物品合成信息斧头种木头种原材料该信息
物品信息窗口做屏幕防超出处理窗口默认显示鼠标悬停左方遇右侧方显示空间足时会进行相应显示位置改变提高游戏体验[1]
图22 物品提示信息
215 AI建筑物背包
AI背包:单单角背包游戏动物拥身背包玩家通方键E键开方背包查物品进行某操作开方时默认会开角背包便进行物品交换等操作关闭背包方法角背包
建筑物背包:储物箱工作台等具备存储物品功
216背包UI布局设计
背包两分两处方角背包背包物品存储角拥物品方公背包角外具备背包功物品展示应该公背包公背包默认隐藏开方背包时会显示出左侧标题位置显示方名称
两背包采取排列受屏幕限制分两处背包显示容限显十分拥挤里采动态布局两背包设置进出鼠标事件检测鼠标处某背包时该背包示容变时背包变程采动画滑渡免显突兀采该设计巧妙化解屏幕空间足问题[2]
背包部采取格子布局横六格子没数量限制物品数量超出会背包右侧动显示滚动条
图23 背包UI布局
217物品JSON数
游戏中存量数数通常会保存成文件形式载入游戏时文件中加载进变游戏数文中物品存储*txt文文件中文件存储格式严格JSON数格式进行填写样安排处够统理种类型数项类型数项存储文件中方便期增加删修改数项等操作
物品JSON数文件例文物品信息JSON数文件(InventoryItemInfoJsonDatatxt)存放关游戏物品信息文件中条数包含种信息:IDENameNameInfoMaterials

表 22 物品JSON数中数项含义
信息类型
信息含义
ID
物品ID物品唯标识符
EName
物品英文名称
Name
物品中文名称
Info
物品描述信息
Materials
物品需合成材料格式:物品1ID|物品1数量|物品2ID|物品2数量例:1001|5|1002|8说明该物品需合成物品两种1001物品需51002物品需8类推信息|隔开该项null代表该物品法合成

表 23 物品JSON数
序号
ID
EName
Name
Info
Materials
1
1001
Grass

富含纤维作食物饲料合成材料
null
2
1002
Tree
木材
砍伐树木获供建筑制造器物材料
null
3
1003
Stone
石头
质坚固脆硬制造石器建筑
null
4
2001
BaseStone

建筑基础建筑需基基建造
1001|8|1003|15
5
2002
Ceiling
天花板
封顶
1001|5|1003|10
6
2003
DoorComponent

封闭建筑中提供进出出口野兽栖息区域注意手关门
1001|5|1002|8|1003|10
7
2004
Stair
楼梯
层建筑中提供通道
1001|8|1002|15
8
2005
Wall

建筑边界建筑划分区域效抵御外界危险
1001|8|1003|15
9
2006
Bump
水泵
抽取水持续提供水源
1001|10|1002|10|1003|10
10
2007
FeedPot
饲料槽
放入饲料动物饿时会动吃里面饲料
1001|15|1002|15
11
2008
PreciousBox
储物箱
身东西太太乱?试试进行分类理
1001|10|1002|15
12
2009
Fence
栅栏
饲养动物乱跑?试试圈起
1001|15|1002|20
13
2010
Farm

采集果子效率太低?试试批量生产果子
1001|25|1002|15
14
3001
Axe
斧头
采集空手法采集物品提高采集效率作武器
1001|5|1002|5|1003|3
15
3002
Crossbow

箭快速射出强力远程武器
1001|8|1002|10
16
3003
Crossbow_Arrow

装载弩快速射出动物产生巨伤害限时间回收利
1001|3|1002|5|1003|2
17
4001
FruitTree_Blueprint
果树蓝图
种植耕中生产量果子
4002|1
18
4002
Fruit
果子
直接食时提供部分水分
null
19
4003
Meat
生肉
直接食烤熟提供更量
null

表 24 物品数项JSON文件格式说明(1001草例)
表格形式
JSON格式
ID
1001
{
ID 1001
EName Grass
Name 草
Info 富含纤维作食物饲料合成材料
Materials null
}
EName
Grass
Name

Info
富含纤维作食物饲料合成材料
Materials
null

22物品合成系统
221物品合成系统介绍
玩家通游戏环境中获取物品原材料然加工合成需物品目前合成物品两类分建筑物武器种物品需材料种类材料需数量合成物品需材料齐全时点击应合成物品获应物品动放置角背包中[3]
222合成系统UI设计
游戏隶属关系说合成系统托背包系统说背包系统部分物品合成系统完整结构框架作子模块降低程序设计时耦合度问题
UI设计说时候合成需前拥物品否合成物品取决否足够合成材料合成物品面板显示背包排便玩家时切换二者查应信息
图24 合成面板

223合成选项
合成物品材料齐全情况通鼠标单击合成单物品时设置选项鼠标右键单击呼出选项选项包括合成合成合成目标数三种操作
表25 合成选项
操作项
备注
合成
合成单物品该操作鼠标单击效果相
合成
根前物品合成需材料合成数量合成限材料合成数量值决定
合成目标数
前材料合成数量范围合成意数量该物品数量默认数量半通手动输入修改范围 [1 MAX]手动输入数量溢出动设置数量

23工具栏
231工具栏介绍
工具栏生存类游戏常见基功游戏中常常会物品需频繁工具栏存然说开背包进行物品样操作流程相说繁杂适合游戏需时反馈环境
物品放置工具栏通快捷键键盘数字键1~8格子物品物品法背包中直接工具栏中时建筑物品武器等格子激活状态次应快捷键取消恢复空手状态
232工具栏UI设计
工具栏整体位屏幕中侧玩家时工具栏放置物品通应快捷键进行否工具栏8格子配合键盘数字键1~8进行格子左角已注明应数字快捷键
图25 工具栏

24物品操作提示
241物品操作提示介绍
物品操作提示玩家够物品进行操作时应信息反馈物品知道物品否发挥作
操作提示三种分获移玩家左角操作结果确认效果反馈
242物品操作提示UI设计
该提示整体位屏幕左侧偏位置信息滚动列表类似信息进行填充条信息般情况默认停留秒时间然消失信息重复时候信息会进行叠加处理第次获100木头信息停留时间次获取200木头信息会变成获300木头节省信息提示数量信息叠加条件类信息类物品类型三种获移类物品进行样操作时间间隔较信息会进行叠加处理叠加时信息停留时间刷新
条信息拥三信息左右分:操作类型物品图标号x+物品操作数量区分操作操作赋予颜色获绿色蓝色移白色玩家熟悉通颜色快速区分操作类型必仔细分辨提高玩家游戏体验
图26 物品操作提示

25图
251图介绍
图RPG类型游戏常见功方面讲图玩家游戏场景环境整体解通查形等高线初步判断出整游戏场景基框架基布局常玩类游戏玩家说形具备资源形况定理解通环境情况快速推理出方会想资源者寻找适合长期居住方驻扎修整游戏中获导权动权发展项力快速融入进游戏中[4]
开图快捷键M键关闭时M键Esc键关闭图
252图功
介绍中提基功外图额外增加辅助功
缩放功:通鼠标滚轮图进行放放处理放图图整体认识方便游戏整体节奏控放整体基础中细节进行特殊分析项功玩家游戏理解提高帮助
拖拽滑动功:鼠标左键拖动图配合缩放功查图已拖拽边缘进行限制处理免玩家度操作
标记功:开图图中会默认标记角前处位置便玩家解身游戏中方位判断步应该方行进外提供手动标记功移动鼠标图中意某点右键进行标记处理玩家提供四种标记图标分家图标三普通图标(区标记身图标)输入标记名称留空皆选择保存取消标记标记位置鼠标悬停该位置查标记名称位置信息手动标记位置进行删(默认标记身位置法删)标记数量限玩家意添加标记位置法进行二次编辑玩家想修改应信息需删旧标记相位置重新添加标记
图27 图

26菜单选项
261菜单选项介绍
菜单选项游戏中涉整体操作容开菜单选项快捷键Esc键关闭方式两种次Esc键二菜单选项中选择继续钮
开菜单选项时游戏世界时间静止暂停游戏关闭恢复正常游戏时间
262菜单选项功
继续(钮):关闭菜单选项继续游戏
杀(钮):设置该选项出三点理出娱乐玩家偶尔杀算游戏特色玩法二进行快速回家者传送玩家死亡重生点固定玩家家建重生点附通该机制快速回家者出某种需求需快速达重生点附该方法快速达三逃脱困境测试作游戏中考虑玩家种抵达区域位置难免会考虑行走区域导致玩家法离开该区域游戏场景中设置裂谷环境某区域超出玩家跳跃力玩家没携带升建筑物会困中时杀逃离
回档(钮):游戏设置存档功回次存档理想情况两存档中限进行回档操作
设置(钮):进行游戏基设置
退出(钮):退出游戏(Unity3D编辑器中退出游戏运行)
图28 菜单选项

27面板理器
面板理器游戏中十分常见统理面板游戏UI元素背包工具栏准星提示信息等
面板理器UI元素分三类分固定面板开关面板提示信息类属层三层UI显示序前:固定面板层>开关面板层>提示信息层三层UI面板情况开关面板会遮挡固定面板提示信息会遮挡开关面板
固定面板层:该层UI旦显示会直保持显示状态会隐藏者关闭:工具栏准星等UI游戏程中直会关闭
开关面板层:顾名思义开面板进行关闭玩家动开面板背包合成面板图等面板手动选择开关闭面板层较特层时刻允许01面板处开状态前开面板关闭前面板情况开面板话会首先关闭前开面板开面板前已开背包然开图逻辑背包会先关闭然执行开图逻辑
提示信息层:前层属提示信息容会显示面层避免提示信息容遮挡起时提醒玩家作
图29 面板层级

28角基控制
281角基控制介绍
角默认第称视角玩家通控制角色模型场景中进行项活动[5]
282基控制
表 26 角色基控制
控制项

备注
移动
WASD键WASD键+Shift键
通键盘键WASD键进行前左右移动通WASD键+Shift键进行快速奔跑
视角
滑动鼠标
通滑动鼠标控制前角色视角俯仰角俯角80度仰角35度
跳跃
Space键(空格键)
高处跃起配合移动控制跳跃距离远

29建造模块
291建造模块介绍
游戏中提供种建筑材料表22中序号4~13中列举游戏中建筑物品建筑提供积木式搭建支持种建筑材料严格求够相互间完美契合[6]
玩家根建筑特性加身建筑理解稍加心思建筑出满意房子
建筑物作玩家提供稳定居玩家生存立安全保障建筑单单房子作样哨站时庇护仓库甚作捕捉猎物陷阱玩家充分发挥想象力定够创造出更途
292建造材料
种建筑材料身特性条件建筑材料时需先拖放工具栏槽位中应快捷键进行时建筑材料会进入预览阶段建筑材料符合放置求时建材会显示绿色否红色代表法放置预览阶段玩家通控制角色位置间接控制建材摆放位置合适时单击鼠标放置建材预览时想继续放置通两种方式退出放置:①次槽位快捷键②鼠标右键取消放置放置成功槽位中剩余建材默认继续进行放置直没动取消放置
表27 建筑材料
建筑材料
规格(单位:米)
放置(赖)条件
备注

长×宽×高:32 × 32 × 02
放置形基天花板
远放置距离3米放置时果合适位置会动吸附

长×宽×高:32 × 02 × 32
放置基墙门天花板

长×宽×高:32 × 02 × 32
放置基天花板
天花板
长×宽×高:32 × 32 × 02
放置墙门天花板
楼梯
长×宽×高:08 × 16 × 32
放置基楼梯天花板


210场景资源
游戏场景中遍布着种动植物矿石类资源游戏前期期资源始终贯穿游戏中想游戏中生存收集图中种资源玩家必路游戏中通采集猎杀动物获取资源利原材料制作强力辅助工具提高生产效率角色原材料担心时寻求更发展空间[7]

图210 采集果子 图211 采集矿石


图212 采集木材 图213 猎杀兔子

表28 资源原材料
场景资源实体
生产原材料
原材料作
获取方式
单体资源获量(单位:)
资源刷新时间(单位:秒)


合成材料
采集(手)
1
60
果树
果子
食种子
采集(手)
5
60

木材
合成材料
采集(斧头)
1
60
矿石
石头
合成材料
采集(斧头)
1
60
兔子


猎杀(武器)+采集(斧头)
5
20
水池

补充水分
喝(手)



表29 资源采集工具
采集工具

方式
间隔时间(
单位:秒)
消耗
触发方式
攻击力
距离(单位:米)

采集草果树水
空手状态直接情况E键


射线检测
0
15
斧头
采集树矿石兔子肉猎杀兔子
需斧头放工具栏单击鼠标 左键进行攻击
02

动画事件+射线检测
100
15
弩+箭
猎杀兔子
刚出时默认空 弩动装载箭单击鼠标左键发射弓箭
1
支箭
触发器
50
130

211物理碰撞层级
游戏中通类型物体进行物理分层控制层级间碰撞关系
图214 物理碰撞层级交互关系





表210 物理碰撞层级含义
层级(Layer)
含义
备注
Ground
面层形层
游戏场景中面形该层
Interactive
交互层
游戏中实体交互层角动物建筑等实体角法穿物体属该层
Trigger
触发层
适该物体没实际碰撞实体物体草果树类角发生 碰撞物体角时会直接穿射线检测
Detection
检测层
顾名思义检测周围物体建筑放置程中需吸附附建筑检测吸附建筑已射出弓箭角检测动回收弓箭背包中
Flight
飞行层
飞行物品者道具位该层弓箭飞行层会Ground层Interactive层进行交互射中实体物体
Water
水层
水池水湖河流等角该层级物体水边喝水补充身水分

表211 物理碰撞层级交互关系
物理层级
Ground
Interactive
Trigger
Detection
Flight
Water
Ground


Interactive



Trigger




Detection





Flight






Water






注释:√代表层级二者间会发生交互否会交互身身交互理

212游戏键汇总
游戏中键较方便理期调整 统进行理游戏中设置专门键理脚(InputKeyConstcs)旦需修改需修改该脚里面定义种键常量形式位置需定义属性属性应键方便修改[8]
表212 游戏键汇总
键常量
类型
实际键
含义
ToolsBarKey_1
KeyCode
KeyCodeAlpha1
工具栏键1~8
ToolsBarKey_2
KeyCodeAlpha2
ToolsBarKey_3
KeyCodeAlpha3
ToolsBarKey_4
KeyCodeAlpha4
ToolsBarKey_5
KeyCodeAlpha5
ToolsBarKey_6
KeyCodeAlpha6
ToolsBarKey_7
KeyCodeAlpha7
ToolsBarKey_8
KeyCodeAlpha8
InventoryKey
KeyCodeI
开关闭背包
ExitKey
KeyCodeEscape
退出面板开菜单选项
MapKey
KeyCodeM
开关闭图
TransferKey
KeyCodeT
转移物品背包中
EmployKey
KeyCodeE
物品(情况)
OutKey
KeyCodeO
丢弃物品
InteractiveKey
KeyCodeE
物体进行交互


第三章 设计模式核心算法

31 MiniMVC
MVC种典型设计模式实现包括三部分(ModelViewController)通模块中逻辑抽离出部分进行统理简化前臃肿复杂逻辑关系
MiniMVCMVC基础进行变种种模式网常见学程中知该种思想种思想十分简单思路清晰项目说够快速开发赖框架范围UI面板游戏中UI模块成整体该模块高层级分ModelViewController三层中实现职

图31 MiniMVC层级关系图解

表31 MiniMVC三层级
层级
含义

Model
数理层
模块中数该层级统加载存储然提供Controller层
View
引理层
模块中会许需实现获取象引子物体脚引预制体等
Controller
业务逻辑层
模块中核心逻辑均该层级实现实现程中利Model提供数View象引实现游戏呈现功
游戏中背包系统例背包高层级物体需挂载三脚(CharacterPanelViewcsCharacterPanelModelcsCharacterPanelControllercs)
①View层负责提前获取模块象引定义应字段属性需Awake()脚生命周期方法中获取
图32 背包View层引获取

②Controller层执行种逻辑功项操作时需常常运View象引该层部分逻辑代码m_View应View通间接引
图33 背包Controller层部分代码

③Model层通常做法中样Awake()方法中事先加载需数提供公开获取方法便Controller层模块开发初期样存Model层着断深入发现该模块数位置样量终部分数抽取通数目前部分数DataSaveAndLoadToolcs进行理方法基相
图34 DataSaveAndLoadTool数获取

32 场景加载
321场景加载介绍
游戏中常常拥场景分理游戏流程场景跳转常见操作果直接进行场景跳转话场景载入需时间遇场景元素较时进入场景时间会较长导致起会卡顿现象里通种异步加载方式解决跳转卡顿现象[9]
322异步加载
异步加载通渡场景渡场景般场景元素十分简单充加载目标场景作通常会配合进度条样进入场景时玩家加载进度出现游戏卡顿情况进度加载完毕利进入目标场景中
323异步加载实现
假设前开始界面(Main)跳转游戏场景(TutorialIsland):
①点击开始游戏加载场景(TutorialIsland)
LoadingBgLoadNextScene(TutorialIsland)
②保存加载场景名立跳转加载界面场景(Loading页)Loading场景直接进入会卡顿现象
图35 加载场景方法

③异步加载需配合协程进行先禁止场景动跳转否场景加载完毕会直接进入异步加载进度01禁止跳转进度会停09等进步指示进度009期间通获取前进度然画面中显示进度条达09重新允许动跳转进度会1然进入场景
图36 异步加载核心逻辑

④里采进度条形式游戏画面裁剪5x9格子时针外逐步显示出画面效果左角开始右边行进达拐角处转直着边缘外显示出格子直整画面呈现出
图37 螺旋矩阵算法

33 存象池
331象池介绍
象池ObjectPool游戏量存常需改变状态操作物体利象池思想进行处理弓箭场景资源等物体场景量存资源采集简单粗暴方法销毁掉种重复销毁实例化程十分消耗CPU性解决类问题象池暂时物体回收象池需时取出[10]
332象池实现
①象池获取物体获取判断前池中否存该物体取出实例化物体
图38 象池中获取象

②物体回收进象池中暂时物体送入象池销毁便续
图39 象池回收象

34 AI控制
341 FSM限状态机
AI种样行行定义状态状态状态间满足定条件相互切换体现AI行样性FSM限状态机述情况样AI定义注册状态游戏中AI具备四种状态巡逻攻击寻路采集状态[11]
表32 AI状态
状态
触发条件
结束条件

巡逻
默认状态AI会处该状态
触发状态者死亡退出该状态
漫目 图巡逻范围全图
攻击
受攻击敌处追击范围
敌超出攻击范围敌超出追击范围者 死亡
先通寻路达攻击象附然实施攻击
寻路
需达某点追击敌指定点采集物品
寻路完毕点达寻路目标消失者死亡
达指定点该目标点固定者动态点
采集
收采集指令(机事件)
采集完毕收指令采集象消失者死亡
首先通寻路达采集物品点然 进行采集
①定义AI状态添加进状态列表中
图310 AI状态添加

②设置AI默认起始状态
图311 AI默认状态

③事先注册种消息事件触发某种事件时通发送应消息触发
图312 注册事件

④监听事件注册种事件监听事件AI根情况动执行相应行操作
图313 监听事件

342 射线检测实现寻路避障
Unity置导航系统通烘焙导航网格形式外加寻路组件障碍组件组成套完整导航系统套系统定程度起挺方便制作程中场景形时常会调整常需根需求修改形然改动需完成导航功需形行走区域进行重新烘焙游戏中形说算烘焙时需等长时间等程中法进行操作
基述情况面现采方案通射线检测种方式实现寻路避障行效果挺符合预期效果基套射线检测算法测试中中寻路避障巡逻等行游戏中均良表现[12]


图314 射线检测点位图解左视图





表33 射线检测检测点位分析
检测点位
点位信息
起始点(相角位置)

射线长度(单位:米)

起跳点
minJumpHit
(0 0301f 0)
角色正前方
08
该位置高需通跳跃越
禁跳点
minNoJumpHit
(0 21f 0)
角色正前方
08
超角色跳跃高度通绕路通
禁走点
minNoMoveHit
(0 01f 045f)
角色正方
22
遇悬崖高处超跳跃力
辅助点
minMoveHit
(0 001f 0)
角色正前方
08
辅助判断否悬崖避免前方障碍时误判悬崖
寻路检测点
destinationDirHit
指目标点单位水量(x 01f z)xz计算出
角色正方
22
通断修正指终点处判断前方否行走区域行走需绕路前行

①定义射线起始射线检测返回信息
图315 射线发射起点信息

②发射射线接收射线返回信息
图316 实时监测信息

③寻路状态巡逻状态定义条射线巡逻程中射线起始点断进行计算修正
图317 寻路时角色位置相终点

④寻路程中会做五件事:直走转重置转缓慢重置转检测否达目标位置难点遇逾越障碍处理悬崖高障碍遇阻碍时通绕路抵达目标点算法重点解决难题[13]
图318 寻路算法核心逻辑
图319 检测角色否达目标位置

35 接口里式转换原
351 接口里式转换原介绍
面象程序设计中常听句话:赖抽象赖具体C#语言中抽象常见方式两种:①抽象类②接口定义抽象类型具体实现中通继承抽象概念提醒限制具体实现程度提高效率降低程序耦合度[14]
里式转换原程序中十分常该原没意识存包含规:①派生类象赋值基类中②基类存放着派生类通显式转换派生类③派生类基类公开方法属性反行
游戏中量规里举实际案例
352 手部控制权
枪械模块中手部需适种枪械工具时需统方式理里采定义手部控制权默认状态手部处空手啥做空手占控制权起斧头时时空手需交出控制权控制权移交斧头弩理
①手部控制权接口定义两种周期方法起放获交出控制权时
图320 手部控制接口
②空手状态斧头弩等继承IHandControlHandler接口通手部控制理器PlayerHandManager设置前手部控制权时刻仅状态拥控制权理器负责控制权转交
图321 切换手部控制权

353 交互物体
游戏中充斥着种样交互物体草果树石头建筑物等角色时角色通某方式发生交互种物体交互逻辑异法种通交互逻辑里交互接口(IInteractiveHandler)定义该物体具备交互项行具体交互逻辑需具体交互物体中实现[15]
①交互接口(IInteractiveHandler)中定义两方法Focus()方法角色物体聚焦该物体时时角色选择交互否Interactive()方法具体交互逻辑物体聚焦触发交互执行该方法容
图322 物体交互接口

③空手状态果树交互例空手状态会断外发射射线检测寻找交互物品寻找交互物体会聚焦物体该物体处聚焦状态
图323 射线检测点位图解左视图

④角色聚焦果树果树处该状态执行相应逻辑果树里首先显示身信息予玩家提示信息玩家执行相应操作触发交互(Interactive)果树发生交互角色背包果子增加进入资源刷新逻辑
图324 果树交互接口实现

36 工具类
程序中功需频繁赖功者赖较少提取成工具类便[16]
表34 工具类汇总
工具类

举例
CShapeBuilderTool
动构建C#脚工具
快速构建物品列表枚举类型
AssetTool
资源理工具
物品图标
CoordinateTool
坐标转换工具
世界坐标坐标相互转换坐标坐标相互转换
DataSaveAndLoadTool
数存取工具
物品JSON数
FileTool
文件工具
文件创建追加数
JsonTools
JSON工具
JSON文件加载字符串象相互转换
RayTool
射线工具
发射射线返回射线信息



第四章 游戏界面环境展示

41 游戏界面

图41 游戏开始界面

42 加载界面

图42 加载界面01 图43 加载界面02 图44 加载界面03


图45 加载界面04 图46 加载界面05



43 游戏形

图47 形环境01 图48 形环境02

44 资源获取

图49 采集果子 图410 采集矿石


图411 采集木材 图412 猎杀兔子

45 UI面板

图413 背包面板 图414 储物箱




图415 游戏图 图416 合成面板

46 建筑物

图417 放置储物箱 超出距离 图418 放置储物箱 放置


图419 放置墙体 超出距离 图420 放置墙体 放置











设计作品初心身生存险类游戏热爱前玩款样生存类游戏方舟:生存战世界等游戏中感受野外探险刺激感体验独野外探险艰辛世界中漫游种快感数东西加起百感交集说颗浪子心现实世界常常法理想环境抱怨现实法种真实体验通方式代完成丝畅想正怀着样巨兴趣奇心决定做出作
游戏设计初Unity引擎身定解制作作时否巨帮助基础知识加持开发初鱼水心应手然样想法游戏设计初目标定略微导致面系列难题出现着前学关Unity知识Unity七系统(物理UI灯光动画导航形粒子特效)逐渐构筑出游戏世界基轮廓着项目断增项目资源程序设计代码理慢慢呈现出理难题基前知识体系继续推翻重建愿意接受新事物新技术身巨奇心学力慢慢推翻重构程序更加合理易理易修改易拓展种断破身固逻辑重新构筑身知识体系程中知识显著暴增
正解程序设计鉴技术框架面开发时候研新算法想法正面介绍情况游戏中 Unity带导航系统法满足开发需求存暂时法解决问题产生重新设计想法终断努力尝试测试设计出符合游戏实际情况满足开发需求算法该算法算完善已满足前需求结果十分满意
牛顿说站巨肩膀学项新技术样充分鉴前总结出验前提追求创新避免重复造轮子效益化

参 考 文 献

[1]段薛孔李潼朱旭东吴兰Unity3D游戏场景中物角色动画设计[J]电脑知识技术20191509199200
[2]段薛孔李潼朱旭东吴兰Unity3D游戏场景中物角色动画设计[J]电脑知识技术201915(09)199200
[3]王功利钟健麒Unity3D射击游戏中工智摄机运[J]电子技术软件工程201820243
[4]郭睿静张帅基Unity3D游戏动作控制设计[J]兰州文理学院学报(然科学版)201529014347
[5]胡磊基Unity3DFPS游戏开发[J]电脑迷201807104
[6]卢金浩张帅伍传敏基Unity3D三维游戏场景AI系统设计实现[J]三明学院学报201330063135+44
[7]程萍宋春华基Unity3D引擎3D漫游系统[J]成纺织高等专科学校学报201431042428
[8]伍传敏张帅邱锦明基Unity3DFPS游戏设计开发[J]三明学院学报201229(02)3540
[9]桑琪叶德建基Unity3D游戏客户端开发框架设计应[J]微型电脑应201632066669+72
[10]伍传敏张帅邱锦明基Unity3DFPS游戏设计开发[J]三明学院学报201229023540
[11]吴霏宬跨移动台3D第三称射击游戏开发[D]北京交通学2014
[12]魏莹基unity3d第称射击游戏中智虚拟角色设计[J]科学技术创新2018159091
[13]马力 基Unity3D旅行事游戏软件设计实现[D]华中科技学2019
[14]桑琪叶德建基Unity3D游戏客户端开发框架设计应[J]微型电脑应201632(06)6669+72
[15]田翠华许立灿彭奕翔陈施恩陈玉明基Unity 3D异星险游戏设计开发[J]中国现代教育装备2019(01)611
[16]张策基Unity3D射击类游戏开发研究实现[J]数字技术应201836065657





文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 香币 [ 分享文档获得香币 ]

购买文档

相关文档

基于Unity3D的生存解谜游戏的设计与实现(v1.1)

自我国进入二十世纪八十代以来,国民经济如日方升,人民的生活方式也焕然一新,渐渐地人们对娱乐的需求越来越大,娱乐的方式也变得越来越多样化。

平***苏 3年前 上传1223   0

基于Unity3d游戏引擎的科普类游戏的设计与开发

随着现代城市化的发展,保护城市的要求迫切的需要执行。并且随着人们的生活质量提高,产生的生活垃圾越来越复杂。如何懂得分类生活中的垃圾,如何让垃圾有效的回收使之重新变成资源成为一个严峻的话题。

平***苏 3年前 上传602   0

基于Unity3D的解密RPG游戏的设计与实现

本次课题是研造一款以Unity 3D引擎的解密RPG游戏。游戏剧情是以《浦岛太郎》的童话故事为主题进行改编,原故事结局是浦岛太郎打开玉匣,最终变成了一个老头子,单调而且具有漏洞。而本游戏将会一改原故事的结局,并且添加更多不同的故事结局,使游戏过程更加扑所迷离,而且还会加入隐藏剧情增加游戏的趣味性,使得游戏更具有故事性。

平***苏 3年前 上传1793   0

基于Unity3d引擎的ACT游戏设计与实现

从游戏诞生之始到现在,游戏市场就发生了非常大的变化,从卡带的游戏机到现在的电脑,专门的游戏主机等。在此之中,像素游戏是一个很重要的过渡期,像素图由于占空间少,颜色少,所以在最初阶段的电子计算机上时代中,就被采用来作为制作游戏的标准图片形式,因为最开始的游戏处理芯片比较低级,自然不能跟如今的3d游戏相比较了,能运行的图片都有严格的颜色和大小的限制。

平***苏 3年前 上传842   0

基于Unity3D的消防员角色扮演游戏的设计与实现

近几年来,市场上的科普游戏越来越受人们重视,而在现有的市场上,关于消防员的游戏普遍都是以2D或2.5D画面为主,并且皆是玩家简单地操作游戏人物进行灭火,科普效果并不显著。

平***苏 3年前 上传766   0

基于Unity3D的塔防游戏的研究与实现

21世纪20年代,游戏已经成为了大众经常选择的娱乐方式。其中,Unity3D作为时下热门的游戏开发引擎,不仅功能完善易上手,还可以免费使用成本低,理所当然的被许多游戏开发者所使用。

平***苏 3年前 上传695   0

生存岛拓展感想

生存岛拓展感想  【生存岛拓展感想】  20xx年5月8日至9日,我荣幸地参加了xx公司在怀柔区生存岛组织的生存拓展培训。  通过培训,我感受至深、收获颇多。这次活动,是对自我的一次挑战,是自我人格、意志品质的一次磨练和提升。同事的鼓励是我前进的动力,团队协作的力量使我感受到至高无上的集体荣誉感。  培训中,我以一名普通团队队员的角色,身体力行的踊跃参加了多数挑战项目,包括背摔、

k***k 10年前 上传502   0

基于java的坦克大战游戏开发毕业设计

 毕业设计说明书(论文) 作 者: 学 号: 院 系: 专 业: 计算机科学与技术 题 目: 基于java的坦克大战游戏开发 指导者: 实验师

文***品 5年前 上传1312   0

基于Cocos的大富翁游戏设计与开发

 专 业: 信息安全   设计题目: 基于Cocos的大富翁游戏设计与开发 摘 要 制作一个游戏,在技术上来说,首先需要的是一款好的引擎,为什么需要引擎呢?引擎提供

山***1 5年前 上传868   0

拓展项目:海岛生存

拓展项目:海岛生存  一个富有激情的挑战,一个充满刺激的体验,一个全新的深圳拓展训练——海岛生存。该项目具有极高的挑战性,它教我们如何在面临困境中生存下来,化险为夷,度过难关。活动中各个环节都需要团队进行沟通、合作、承担、奉献。以下是精彩简介,尽请浏览。  海岛生存的课程简介:  新时期安逸的生活环境,让我们遗忘了野外生存的方式,一旦突如其来的灾难降临,我们却不知如何面对,海岛生存会

b***l 11年前 上传436   0

基于Unity3D的仿真火灾事故的预防和处理的设计与实现

科技的日新月异,计算机成了人类生活中不可或缺的一部分,说到计算机,游戏是不得不说的是其中的一个联想词,游戏本身所拥有的趣味性以及娱乐性,能大大的激发人类的兴趣。

平***苏 3年前 上传693   0

基于unity3D的华丽弹幕

从街机游戏到计算机游戏,信息技术的影响将与信息技术相伴,未来的发展将受到非凡的影响。加上现代5G的起步,以后更是行业大动荡时期,将萌发新游戏时代。

平***苏 3年前 上传543   0

基于Android的教学课程系统设计与开发

摘 要移动应用已经成为人们生活必不可缺的一部分,大学生身为移动应用的最大用户群体,在生活学习娱乐各个方面都与移动应用有着紧密联系,然而针对大学生校园学习的移动应用却寥寥无几,因为不同的学校,甚至不同的院系,都有着自己独特的情况。该项目借鉴了现有的一些和学习相关的移动应用,结合软件学院的特点,针对软件学院的学生,提供了学生日常学习生活常用的一些功能。主要分为我的课表,我的日程,我的学习

平***苏 3年前 上传612   0

基于Web的作业系统设计与开发

基于Web的作业系统开发与设计基于Web的作业系统开发与设计摘 要本作业系统是基于原有的教学管理模式,通过构建B/S架构,使用Java Server page(简称“JSP”)为本设计的前台开发使用的工具,使用MySQL数据库为后台数据库,从而去实现教学管理的信息化。通过对现有教学管理模式的梳理,本次设计主要分为三个大的模块:作业系统管理员模块、老师角色模块、学生角色模块

平***苏 1年前 上传283   0

基于ASP技术的网站的设计与开发毕业论文

基于ASP技术的网站的设计与开发毕业论文 目录 第一章 绪论 1 1.1引言 1 1.2网站的简介 1 1.3网站开发的意义 2 1.4网站的特点及实现目标 2 1.4.1网站的特点 2 1.4.2网站的实现目标 2 1.5本文的主要工作 3 第二章 相关理论与关键技术介绍 4 2.1软件工程 4 2.2 HTML简介 4 2.3 ASP技术 5 2.3.1ASP技术的优点 5 2.3.2AS

文***品 5年前 上传1934   0

毕业论文:基于ASP技术的网站的设计与开发

当今世界已经跨入了信息时代,计算机科学与技术正在迅猛发展,尤其是以计算机为核心的信息技术正在改变整个社会的生产方式、生活方式和学习方式。网站的设计与开发是当中的的一项重要工作。在设计过程中涉及大量的数据处理。随着Internet的迅速发展,基于Web 的信息服务方式得到了广泛的应用。

z***u 5年前 上传1547   0

基于Android的外卖点餐类的app的设计与开发

基于Android的外卖点餐类app的开发与设计 摘 要:在这千变万化的岁月中,手机已不是稀奇之物。规矩的传统订餐已经不能在我们生活中得到满足,用户们需要一个可以在家查看餐厅以及点餐的服务。由此,外卖订餐体系就呈现了,本体系操纵Android体系,来实现订餐。本系统操作十分简单,给用户一个全新的体验,也有助于商家往更好的方向发展,促进经济的发展。关键词:android;数据库;客户端;服

平***苏 8个月前 上传192   0

基于单片机的拔河游戏机设计课程设计

××大学××学院××课程设计基于单片机的拔河游戏机设计学生姓名学 号所 在 系专业名称班 级指导教师成 绩 ××大学××学院二○一二年X月摘要:近年来随着计算机在社会领域的渗透和大规模集成电

文***享 3年前 上传585   0

基于Unity的生活环境类游戏的开发与实现

本次课题是以打造一款以Unity3D引擎设计的一款生活环境类游戏——《逃离城市》。玩家需要控制游戏中的主角人物去进行几个场景城市的闯关。

平***苏 3年前 上传398   0

Android实训报告基于Android的游戏开发

通信与电子信息专业实训报告项目名称:基于Android的游戏开发 班 级 通信班 姓 名 学 号 指导教师 成 绩

文***品 3年前 上传1081   0

游戏设计与开发详细课程设计文档

为了学习Unity3D游戏引擎,为了进一步了解并熟悉该款引擎,本文描述了如何制作了一个三维的RPG类游戏项目,这个游戏的背景来源于一部叫做《草原历险记》的电影。通过对该项目的制作和学习,来了解用Unity3D开发游戏的利与弊,以及这款游戏引擎未来的优势。本文所述的游戏项目开发所用的开发工具是

文***享 2年前 上传469   0

磁悬浮系统稳定性研究设计毕业设计

 毕业设计(论文) 磁悬浮系统的稳定性研究方案设计 学 生: 学 号: 专 业:电气工程及其自动化 班 级: 指导教师: XX学院自动化与电子信息学院 二OXX年X月 摘 要 本文通过对磁悬浮系统稳定性方案的讨论,从多种方法中选取状态控制法来实现对系统的稳定性控制。文中首

z***u 5年前 上传770   0

基于单片机的乒乓球游戏系统的设计

基于单片机的乒乓球游戏系统的设计姓 名:学 号:专业班级: 院(系): 设计时间: 设计地点: 指导教师评语: 成绩: 签名: 年 月

文***享 3年前 上传735   0

基于微信小程序的游戏玩家互动社区的设计与实现

 基于微信小程序的游戏玩家互动社区的设计与实现 Design and Implementation of Gamer Interactive Community Based on WeChat Mini Program

平***苏 10个月前 上传358   0

《双减》基于多元表征的儿童数学游戏设计

《双减》基于多元表征的儿童数学游戏设计数学教育的根本目的是培养学生的数学思维,文章分析了当前儿童数学游戏设计忽视数学思维培养的问题及其原因,以儿童思维认知发展特点为基础,结合“核心图”游戏模型和多元表征理论,提出利于儿童数学思维发展的游戏设计模型,并从核心机制、规则、道具、角色等几个方面设计了数学思维启蒙游戏的实例。数学是一门高度抽象的学科,不如音乐那般生动,也不似美术那般具体,对于认知发展

蓝郎梦 1年前 上传264   0