• Unity探索地块通路设计分析 & 流程+代码具体实现


    ⭐️前言引入:

    • 比方说我们有下面一张地图(概念设计图)需要探索

    ⭐️游戏背景:

    1. 主堡位于地图最右侧中央,怪从左侧生成。
    2. 我们通过挖地块生成小路影响怪的路径,通过建造塔抵御怪的入侵。
    3. 已经挖开的路是小怪的移动范围,尚未挖开的部分地块可以放置想要的塔。
    4. 部分地块有概率获得特殊奖励/彩蛋,塔和不同的地块可设计不同的元素交互(这里不便做具体展开,大家可以自行脑补)
    5. 我们的目的是成功抵御多个波次的怪物攻击,成功守住我们的主堡。

    ⭐️具体功能模块说明:

    • 当前探索到的某个地块会有一个标识,如果这是一个可挖地块的话,我们点击标识,会出现2~3个小三角箭头,点击某个箭头,所指向的地块如果是可挖地块的话,就会变成通路。
    • 我们所要设计的就是实现这样的一个想法或者说是功能,并将其拓展成一个可供外部调用的通用接口

    ⭐️设计思路:

    • 起点没有地块覆盖,是通路,用一个小特效图片作为标识,通过点击任意朝向的箭头,可以把箭头指向的地块变为通路。
    • 这个变的过程其实就是切换一张图片,并且要将上一个地块的箭头隐藏并显示出下一个地块的箭头。
    • 这里有一个重要的点,我们要保证生成的通路是连续的,比如上一张的纹理是竖着的,下一张的要和它连贯,遇到弯路的时候,还要显示弯曲的路,这就要进行两次判断,第一次判断要和上一张连贯,第二次判断要和前后两张连贯

    ⭐️实现效果:

    ⭐️实现过程:

    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEngine.UI;
    5. using UnityEngine.EventSystems;
    6. public class chufa : MonoBehaviour
    7. {
    8. public GameObject Stick, changeStick;
    9. public GameObject btn1, btn2;
    10. public GameObject btn_stick1, btn_stick2;
    11. public Image sr;
    12. public Sprite[] pic;
    13. void Start () {
    14. sr = GetComponent();
    15. Button btn = Stick.GetComponentInChildren
    16. btn.onClick.AddListener (OnStartButtonClick);
    17. }
    18. public void OnStartButtonClick()
    19. {
    20. Debug.Log("哈哈哈哈!看,你好像是个憨憨!!");
    21. changeStick.GetComponent().sprite = pic[0];
    22. btn_stick1.SetActiveRecursively(false);
    23. btn_stick2.SetActiveRecursively(false);
    24. btn1.SetActiveRecursively(true);
    25. btn2.SetActiveRecursively(true);
    26. }
    27. public void TransRoad()
    28. {
    29. //...
    30. }
    31. }

  • 相关阅读:
    驱动 实现三盏灯开关
    不讲故事的设计模式-责任链模式
    (附源码)ssm基于SSM的南昌旅游网站管理系统设计与实现 毕业设计 101407
    【RISC-V设计-10】- RISC-V处理器设计K0A之IDU
    【ICML 2018】Noise2Noise: Learning Image Restoration without Clean Data
    博客之站项目测试报告
    `git fetch` 和 `git remote update origin --prune` 的区别(以及跟`git pull` 的区别)
    【从零开始学爬虫】采集谷歌网页列表数据
    173. 二叉搜索树迭代器
    【PyTorch实战演练】自调整学习率实例应用(附代码)
  • 原文地址:https://blog.csdn.net/Luoxiaobaia/article/details/125987406