【unity】7.自适应按钮大小

上一篇:【unity】6.点击格子后显示附近雷的数量


在代码中计算按钮的大小

如果我们规定画面大小始终为1920*1080,而格子大小随画面大小变化,那么可以在代码中这样计算每个格子的大小:

  1. 规定画面每边留10%的空白,对1920*1080而言,就是上下各留出108像素的空白,左右留出192像素的空白
  2. 留出空白之后,计算每个格子横向排列的最大尺寸和纵向排列的最大尺寸
  3. 从2计算出的两个值中选小的一个作为最终格子尺寸

计算横纵向按钮最大尺寸

打开GameLogic.cs,在InitMines函数中添加如下内容:

        int _maxButtonWidth = (int)(parentButtonPrefab.GetComponent<RectTransform>().rect.width * 0.8 / maxRow);
        int _maxButtonHeight = (int)(parentButtonPrefab.GetComponent<RectTransform>().rect.height * 0.8 / _maxCol);
        int _buttonSize = Math.Min(_maxButtonHeight, _maxButtonWidth);

并删除我们之前在生成按钮时取按钮尺寸的代码

                //int _buttonSize = (int)(buttonPrefab.GetComponent<RectTransform>().rect.height);

修改按钮尺寸

找到生成按钮的地方,修改按钮尺寸和字号(第一行是之前代码中生成按钮的地方)

                GameObject _button = GameObject.Instantiate(buttonPrefab, _pos, Quaternion.identity, parentButtonPrefab.transform);
                _button.GetComponent<RectTransform>().sizeDelta = new Vector2(_buttonSize, _buttonSize);
                _button.transform.GetChild(0).GetComponent<RectTransform>().sizeDelta = new Vector2(_buttonSize, _buttonSize);
                _button.GetComponentInChildren<TextMeshProUGUI>().fontSize = _buttonSize - 2;

代码运行结果

代码运行结果如下
在这里插入图片描述
在代码中将格子数修改为30*16,运行结果如下
在这里插入图片描述


下一篇:【unity】8.深度优先搜索

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity WebGL 是 Unity 引擎的一个功能,它可以将 Unity 游戏发布为网页应用程序。当我们在使用 Unity WebGL 构建网页游戏时,我们是希望游戏可以适应不同类型和尺寸的浏览器。 在 Unity WebGL 中,实现自适应浏览器的关键是使用适当的布局和缩放策略。首先,我们需要确保游戏能够自动适应不同浏览器窗口的尺寸。我们可以使用 CSS 或 JavaScript 代码来检测浏览器窗口的大小并相应地调整 Unity 游戏的大小。 其次,我们还可以使用 CSS 或 JavaScript 来控制 Unity 游戏的缩放。这样可以确保游戏在不同设备上都能够以正确的比例显示,从而避免因屏幕分辨率不同而导致的图像模糊或变形。 另外,Unity WebGL 还支持在游戏加载之前,显示一个适配的预加载画面。这样可以增加用户体验,同时也给游戏加载所需时间提供了一个反馈。 还有一些其他的技巧可以帮助我们实现 Unity WebGL 的自适应浏览器。例如,使用响应式设计来确保游戏界面在不同屏幕尺寸下的可用性和易用性。此外,使用合适的字体大小按钮大小也可以提供更好的用户体验。 总的来说,Unity WebGL 可以通过使用适当的布局和缩放策略,以及其他一些技巧,实现游戏在不同浏览器中的自适应。这样,无论用户在使用哪种类型的浏览器,游戏都能够以最佳的方式呈现给他们,提供良好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值