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 │     │
     *  ├-----┼-----┼-----┤       ├-----┼-----┼-----┤       ├-----┼-----┼-----┤
     * 
     *  
相关推荐
℡枫叶℡2 小时前
Unity - Import Activity Window 资源导入诊断信息窗口
unity·资源导入诊断
TO_ZRG4 小时前
Unity 证书校验
unity·游戏引擎
mxwin6 小时前
Unity Shader 切线空间数据是如何计算出来的
unity·游戏引擎·shader
mxwin9 小时前
Unity Shader 法线贴图跟切线空间有什么关系
unity·游戏引擎·贴图·shader
mxwin9 小时前
Unity Shader 贴图和采样的关系 如何保证贴图清晰
unity·游戏引擎·贴图·shader
心前阳光11 小时前
Unity之使用火山引擎实现文字提问流式回复
unity·游戏引擎·火山引擎
mxwin14 小时前
Unity Shader 什么是球谐光照 原理是什么
unity·游戏引擎·shader
心前阳光14 小时前
Unity之使用火山引擎实现语音识别
unity·语音识别·火山引擎
心前阳光14 小时前
Unity之使用火山引擎实现流式语音合成
unity·游戏引擎·火山引擎