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 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     * 
     *  
相关推荐
mxwin15 分钟前
Unity Mask 贴图:用一张纹理的 RGBA 通道分别控制 PBR 材质参数
unity·材质·贴图
FairGuard手游加固1 小时前
FairGuard支持HybridCLR热更DLL加密
游戏·unity·游戏引擎
海海不瞌睡(捏捏王子)2 小时前
Unity GUI优化
unity·游戏引擎
心前阳光3 小时前
Unity之Luban表格配置
unity
mascon4 小时前
unity mcp 使用
unity·游戏引擎
心前阳光5 小时前
Unity之语音提问,语音答复
unity·游戏引擎
mxwin6 小时前
Unity Shader UV 坐标与纹理平铺Tiling & Offset 深度解析
unity·游戏引擎·shader·uv
chao1898447 小时前
基于STM32F1的声源定位系统设计与实现
stm32·嵌入式硬件·unity
七夜zippoe18 小时前
OpenClaw 内置工具详解
unity·ai·游戏引擎·openclaw·内置工具
mxwin1 天前
Unity Shader 细节贴图技术在不增加显存开销的前提下,有效提升近距离纹理细节的渲染质量
unity·游戏引擎·贴图