unity3d随机地牢生成代码
现在也是处于失业状态,碰巧看到个面试题是要用unity生成个随机地牢,就把做题过程中的思路和代码记录一下吧。 做完了以后我又想了一下,发现其实根本不需要这么麻烦,果然demo里的代码对我的思路影响还是有点大。demo里的c++代码为了展示地牢的墙壁,在二维数组中加上了wall这个东西表示墙壁。事实上用unity来做的话,只需要考虑地板的位置,然后根据邻接的地板有没有东西来判断是否生成墙壁即可。 Demo 使用素材以及题目地址: http://pan.baidu.com/s/1c2l3RFE 密码:aseh 首先用一个枚举类型代表地牢迷宫中的各个元素: public enum Tile { Default, DirtFloor,// 房间地板 Wall_w,//上方的墙 Wall_s,//下方的墙 Wall_a,//左方的墙 Wall_d,//右方的墙 Corridor_ad,//横向走廊 Corridor_ws,//纵向走廊 Door,// 房门 UpStairs,// 入口 DownStairs// 出口 } 然后考虑使用二维数组来保存地牢元素的信息。既然是用unity来做,先不考虑随机地牢的逻辑数组要怎么生成,先把二维数组转化为实体的方法写出来: 建立一个test脚本,用于测试生成用的creat_dungeon方法是否好用,并在里面定义一个测试用的二维数组: using