⭐️前言引入:

⭐️游戏背景:
- 主堡位于地图最右侧中央,怪从左侧生成。
- 我们通过挖地块生成小路影响怪的路径,通过建造塔抵御怪的入侵。
- 已经挖开的路是小怪的移动范围,尚未挖开的部分地块可以放置想要的塔。
- 部分地块有概率获得特殊奖励/彩蛋,塔和不同的地块可设计不同的元素交互(这里不便做具体展开,大家可以自行脑补)
- 我们的目的是成功抵御多个波次的怪物攻击,成功守住我们的主堡。
⭐️具体功能模块说明:
- 当前探索到的某个地块会有一个标识,如果这是一个可挖地块的话,我们点击标识,会出现2~3个小三角箭头,点击某个箭头,所指向的地块如果是可挖地块的话,就会变成通路。
- 我们所要设计的就是实现这样的一个想法或者说是功能,并将其拓展成一个可供外部调用的通用接口。
⭐️设计思路:
- 起点没有地块覆盖,是通路,用一个小特效图片作为标识,通过点击任意朝向的箭头,可以把箭头指向的地块变为通路。
- 这个变的过程其实就是切换一张图片,并且要将上一个地块的箭头隐藏并显示出下一个地块的箭头。
- 这里有一个重要的点,我们要保证生成的通路是连续的,比如上一张的纹理是竖着的,下一张的要和它连贯,遇到弯路的时候,还要显示弯曲的路,这就要进行两次判断,第一次判断要和上一张连贯,第二次判断要和前后两张连贯。
⭐️实现效果:


⭐️实现过程:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class chufa : MonoBehaviour
{
public GameObject Stick, changeStick;
public GameObject btn1, btn2;
public GameObject btn_stick1, btn_stick2;
public Image sr;
public Sprite[] pic;
void Start () {
sr = GetComponent<Image>();
Button btn = Stick.GetComponentInChildren<Button>();
btn.onClick.AddListener (OnStartButtonClick);
}
public void OnStartButtonClick()
{
Debug.Log("哈哈哈哈!看,你好像是个憨憨!!");
changeStick.GetComponent<Image>().sprite = pic[0];
btn_stick1.SetActiveRecursively(false);
btn_stick2.SetActiveRecursively(false);
btn1.SetActiveRecursively(true);
btn2.SetActiveRecursively(true);
}
public void TransRoad()
{
//...
}
}