个人技术总结——Unity-C#实现随机房间生成类的设计
技术概述
在游戏中经常需要随机生成一些环境、资源,学习该技术可以更加方便地去控制随机生成变量。技术难点在于,随机生成需要很强的扩展性,才能面对需求的变化。
技术详述
是抽象出房间的概念:多种房间继承自Room,每个房间这样就可以有更多不同的自己的物体,比如休息房间可以再增加休息点、怪物生成房间可以有怪物生成点。这步产生房间层次类。
控制生成环境变量:在编码前需要确定各种随机生成后的房间的特征,比如是图状还是树状,从多个点生成还是从一个点生成。我们这次项目为从一个点开始生成树状地图,采用深度优先的方式生成。这步产生生成过程类。
控制房间不重叠:使用一个栈记录房间生成过的位置,在生成过程中去探寻各个方向还有没有位置可以生成,如果没有则返回False代表生成失败。这步也为生成过程类的内容
工厂模式+创建者模式结合:有一个单独的函数通过传入参数来控制房间生成,工厂模式:房间类别,创建者模式:房间位置、房间信息(门的开口)。可以在设置完所有房间的信息后统一生成,也可以分开在游戏进行过程中动态生成。这步产生工厂+创建者混合类。
房间信息保存与查询:将房间信息通过链表保存起来,方便后续需求变化来的时候修改。这步产生地图信息类。
关卡管理:再房间生成之后可能需要再生成不同的关卡,通过关卡管理类来分别管理。
总结
随机房间生成系统可以分为:房间层次类、工厂+创建者混合类、生成过程类、地图信息类、关卡管理类。
简易类图表达:
相关推荐
基于Unity引擎的2D随机房间生成设计源码
该源码是基于Unity引擎开发的2D随机房间生成系统,包含622个文件,涵盖281个资源资产、17个预制体、6个C#脚本、5个JSON配置、4个PNG图像、2个动画文件和2个控制器,以及辅助的Git忽略文件和Markdown文档。该系统旨在实现2D游戏场景中房间的随机生成,适用于各种需要动态环境生成的游戏开发项目。
Unity-RandomDungeonGenerator:随机地牢生成器的 Unity 端口 (C#) by drow
unity-RandomDungeonGenerator drow 随机地牢生成器的 Unity 端口(C#): : 工作正在进行中 学分 图块表: ://opengameart.org/content/instant-dungeon-v14-art-pack 去做 一旦修复了所有错误,让我们开始面向对象! 单元测试
【Unity】升级版·Excel数据解析,自动创建C#类,自动创建ScriptableObject生成类,自动序列化Asset
Excel数据解析,自动创建对应C#类,自动创建ScriptableObject生成类,自动序列化Asset文件 功能介绍链接 https://z-c-s.blog.csdn.net/article/details/125608062
unity建筑随机生成.zip
unity建筑随机生成.zip
Unity5.0切水果游戏(C#)
切水果源码,曲线水果刀,分数统计,炸弹发射,掉落统计,随即发射水果等功能实现


