Unity记录5.5-地图-随机生成连续洞穴块

文章首发见博客:https://mwhls.top/4852.html

无图/格式错误/后续更新请见首发页。

更多更新请到mwhls.top查看

欢迎留言提问或批评建议,私信不回。
汇总:Unity 记录

摘要:生成连续的洞穴地图块。

随机生成连续洞穴-2023/9/5
  • 之前几天一直没想好洞穴这种四通八达的怎么实现,后来灵机一动,我把四通八达的一个块改成一通二达的四个块就好了。
  • 然后地下的块就直接取地面块的翻转,其它参数都不用改,效果还蛮好的。
实现代码-2023/9/4-2023/9/5
  • 这部分的代码和前面的重复度比较高,有意义的只有新增的十个方向以及它们对应周围方向。
  • 其它部分就是一些查缺补漏,所以只放有意义的注释。
c 复制代码
    /*  ---------- surface direction ----------
     *  ┌-----┬-----┬-----┐
     *  │__777│_____│999__│ I label these directions with numbers 
     *  │_7777│88888│9999_│     corresponding to the number pad positions for the block's solid area.
     *  │77777│88888│99999│ For example, 
     *  ├-----┼-----┼-----┤     1 in left-down, only left-down tiles are solid, i.e. from left to down
     *  │4____│55555│____6│     4 in left, the tiles in left are solid, i.e. from up-left to down-right
     *  │44___│55555│___66│     7,9 are opposite which denotes the empty area
     *  │444__│55555│__666│
     *  ├-----┼-----┼-----┤ Besides, _ means the reverse version
     *  │_____│_____│_____│
     *  │1____│22222│____3│
     *  │11___│22222│___33│
     *  └-----┴-----┴-----┘
     *  0. [empty, ]           : no tile in this block
     *  1. [left, down]        : from left to down
     *  2. [horizontal, ]      : from left to right
     *  3. [right, down]       : from right to down
     *  4. [vertical, left]    : from up-left to down-right
     *  5. [full, ]            : all tiles are soild
     *  6. [vertical, right]   : from up-right to down-left
     *  7. [left, up]          : from left to up
     *  8. [horizontal, ]      : 8. == 2.
     *  9. [right, up]         : from right to up
     * 
     *  ---------- reverse direction ----------
     *  10. [_empty, ]         : the reverse version of 0.
     *  11. [_left, down]      : the reverse version of 1.
     *  12. _2
     *  13. _3
     *  14. _4
     *  15. _5
     *  16. _6
     *  17. _7
     *  18. _8
     *  19. _9
     *  
     *  ---------- direction relation ----------
     * If direction of this block is 'x', which block can connect it?
     *  ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐
     *  │     │ 3 6 │     │       │     │     │     │       │     │ 1 4 │     │
     *  │     │_1 4 │     │       │     │     │     │       │     │_3 6 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │ 239 │  7  │ 459 │       │     │  2  │     │       │ 567 │  9  │ 127 │
     *  │     │     │_3 6 │       │     │     │     │       │_1 4 │     │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │     │  5  │     │       │     │     │     │       │     │  5  │     │
     *  │     │_123 │     │       │     │     │     │       │     │_123 │     │
     *  └-----┴-----┴-----┘       └-----┴-----┴-----┘       └-----┴-----┴-----┘
     * 
     *  ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐
     *  │     │ 1 4 │     │       │     │ 279 │     │       │     │ 3 6 │     │
     *  │     │_3 6 │     │       │     │     │     │       │     │_1 4 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │ 567 │  4  │ 036 │       │ 6 7 │  5* │ 4 9 │       │ 014 │  6  │ 459 │
     *  │_1 4 │     │_4 9 │       │_1 4 │     │_3 6 │       │_6 7 │     │_3 6 │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │     │ 4 9 │     │       │     │     │     │       │     │ 6 7 │     │
     *  │     │_6 7 │     │       │     │_123 │     │       │     │_4 9 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     * 
     *  ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐
     *  │     │  0  │     │       │     │  0  │     │       │     │  0  │     │
     *  │     │_279 │     │       │     │_279 │     │       │     │_279 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │ 239 │  1  │ 036 │       │ 239 │  2  │ 127 │       │ 014 │  3  │ 127 │
     *  │     │     │_4 9 │       │     │     │     │       │_6 7 │     │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │     │ 4 9 │     │       │     │  5  │     │       │     │ 6 7 │     │
     *  │     │_6 7 │     │       │     │_123 │     │       │     │_4 9 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     * 
     *  ┌-----┬-----┬-----┐
     *  │     │     │     │   x*: around with x
     *  │     │_279 │     │
     *  ├-----┼-----┼-----┤
     *  │ 1 4 │  0* │ 3 6 │
     *  │_6 7 │     │_4 9 │
     *  ├-----┼-----┼-----┤
     *  │     │ 123 │     │
     *  │     │     │     │
     *  ├-----┼-----┼-----┤
     * 
     *  ---------- reverse relation ----------
     *  
     *  ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐
     *  │     │ 1 4 │     │       │     │     │     │       │     │ 3 6 │     │
     *  │     │_3 6 │     │       │     │     │     │       │     │_1 4 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │     │ _7  │ 036 │       │     │ _2  │     │       │ 014 │ _9  │     │
     *  │_239 │     │_4 9 │       │     │     │     │       │_6 7 │     │_127 │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │     │0123 │     │       │     │     │     │       │     │0123 │     │
     *  │     │     │     │       │     │     │     │       │     │     │     │
     *  └-----┴-----┴-----┘       └-----┴-----┴-----┘       └-----┴-----┴-----┘
     * 
     *  ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐
     *  │     │ 3 6 │     │       │     │     │     │       │     │ 1 4 │     │
     *  │     │_1 4 │     │       │     │     │     │       │     │_3 6 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │ 014 │ _4  │ 459 │       │     │  0  │     │       │ 567 │ _6  │ 036 │
     *  │_6 7 │     │_3 6 │       │     │     │     │       │_1 4 │     │_4 9 │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │     │ 6 7 │     │       │     │     │     │       │     │ 4 9 │     │
     *  │     │_4 9 │     │       │     │     │     │       │     │_6 7 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     * 
     *  ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐       ┌-----┬-----┬-----┐
     *  │     │ 2579│     │       │     │ 2579│     │       │     │ 2579│     │
     *  │     │     │     │       │     │     │     │       │     │     │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │     │ _1  │ 459 │       │     │ _2  │     │       │ 567 │ _3  │     │
     *  │_239 │     │_3 6 │       │_239 │     │_127 │       │_1 4 │     │_127 │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     *  │     │ 6 7 │     │       │     │0123 │     │       │     │ 4 9 │     │
     *  │     │_4 9 │     │       │     │     │     │       │     │_6 7 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     * 
     *  
相关推荐
90后小陈老师2 小时前
Unity教学 项目2 2D闯关游戏
游戏·unity·游戏引擎
噗噗夹的TA之旅3 小时前
Unity Shader 学习20:URP LitForwardPass PBR 解析
学习·unity·游戏引擎·图形渲染·技术美术
nnsix3 小时前
Unity ReferenceFinder插件 多选资源查找bug解决
unity·游戏引擎·bug
gzroy5 小时前
Unity Shader Graph实现全息瞄准器
unity·游戏引擎
90后小陈老师8 小时前
Unity教学 基础介绍
unity·游戏引擎
90后小陈老师8 小时前
Unity教学 项目3 3D坦克大战
3d·unity·游戏引擎
秦奈10 小时前
Unity复习学习随笔(五):Unity基础
学习·unity·游戏引擎
nnsix10 小时前
Unity ReferenceFinder插件 窗口中选择资源时 同步选择Assets下的资源
java·unity·游戏引擎
麷飞花12 小时前
unity3d scene窗口选中物体, 在 hierarchy高光显示
unity·editor·unity3d·u3d·hierarchy
ۓ明哲ڪ12 小时前
Unity功能——关闭脚本自动编译(Unity2021.3)
unity·游戏引擎