【unity】11.胜利失败界面

本文讲述了在Unity中完善Minesweeper游戏,包括显示胜利判定、调整按钮布局及隐藏结算界面。玩家操作后,游戏逻辑响应并控制界面更新。
摘要由CSDN通过智能技术生成

上一篇:【unity】10.胜利判定


修改格子的生成位置

上一篇中我们虽然判定了胜负,但是只是将结果打印在console中,并没有在游戏界面上显示。因此这一篇我们加入界面显示
首先在canvas中新建一个空组件命名为Buttons,用来存放所有生成的格子
在这里插入图片描述
修改这个组件的性质如下:
在这里插入图片描述

然后修改GameLogic中指定的ParentButtonPrefab,将其设为刚才的Buttons
在这里插入图片描述
点击运行即可看到按钮都生成在Buttons下面了
在这里插入图片描述

添加胜利失败界面

然后我们在Canvas下再新建两张图片作为胜利失败图像。注意unity的Canvas中,越靠下的组件在显示的时候越靠前,会遮挡住靠后的组件。因此当我们在最下面添加两张图片作为结算界面时,图片会挡住后面的格子,使得我们无法再用鼠标点击到格子。
在这里插入图片描述
用PS画两张图作为结算界面
请添加图片描述
请添加图片描述
将其添加到WinResult和LoseResult组件中,并修改图片尺寸,然后将其设为隐藏(即默认隐藏,等我们需要的时候再显示)
在这里插入图片描述
在这里插入图片描述
然后修改GameLogic.cs如下:

    public GameObject winResult;
    public GameObject loseResult;
    
    public void ClickMine(GameObject _button)
    {
        int _row = _button.GetComponent<MinesweeperButton>().GetRow();
        int _col = _button.GetComponent<MinesweeperButton>().GetCol();
        if (_button.GetComponent<MinesweeperButton>().GetHasFlag() == false)
        {
            if (bombList.Contains(_row * maxCol + _col))
            {
                _button.GetComponent<Image>().color = Color.red;
                _button.GetComponent<Button>().enabled = false;
                //Debug.Log("You Lose!");
                loseResult.SetActive(true);
            }
            else
            {
                DFSMine(_row, _col);
                if (enableNum <= maxBomb)
                {
                    //Debug.Log("You win!");
                    winResult.SetActive(true);
                }
            }
        }
    }

然后在GameLogic的Inspector里设置两个结算界面:
在这里插入图片描述

运行结果

运行结果如下:结算判定出现后,格子无法再次被点击在这里插入图片描述
在这里插入图片描述


下一篇:【unity】12.点击数字自动开启周围格子

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值