【1、让我们来回顾一下原先商店的各个商品的布局】
根据原先同学所做的商店的预设框架(坑,为什么是坑我后面还会具体描述),开始往里面填肉(肉身填坑),这货有本事做了六个商品预设,而我居然也傻傻的做了六个具体的商品填了进去。这样的笨方法是不可取的。
为什么不可取 更多精彩请点击【狗刨学习网】
正如图里红色文字备注所示,如果哪天策划萨玛笑嘿嘿的看着你说 ,我们打算新开一个商店功能,里面要有千百个商品可供玩家购买……
千百个商品可供玩家购买……
千百个...
百个..
个.
你会打算怎么办?
【2、那么,痛定思痛后,我们开始尝试的新的办法,老湿表示,作为一个程序员你就应该要有见招拆招的本事】
思路:我们只做一个商品模板,然后用代码和组件来根据要求个数生成一定的商品数量。
说道组件,刚好在unity的UGUI里有layout布局的概念
如图所示,UGUI有LayoutGroup分为三种,分别为:
Horizontal Layout Group(水平布局)
Vertical Layout Group(垂直布局)
Grid Layout Group (网格布局)
由于我们的商店模块里的商品布局设计结构为两行三列,所以我们选用Grid Layout Group组件
层级结构关系如下:
●Grid:作为父物体,绑上Grid Layout Group组件,并调整一定的数值
●shop_product_bg(Clone):为具体商品(现为本人代码实例化预设)
●shop_product_bg(Clone):同上
●shop_product_bg(Clone):同上
●shop_product_bg(Clone):同上
●shop_product_bg(Clone):同上
●shop_product_bg(Clone):同上
【3、死调Grid,大小始终有偏差】
在搭建UI的过程中,我慢慢发现泡菜所给我的预设Scale都不为1。如下图。
开始我不以为然,在换用GridLayout Group网格布局解决方案后,为了保持原先大小,开始自作多情且恬不知耻的的计算着数值。如下图。更多精彩请点击【狗刨学习网】
为什么说自作多情且恬不知耻呢,为因为经过本人严密的数值计算之后,把原先Scale为1.2的预设统统修改为1,做出来UI大小还是出现了偏差,虽可努力调整Cell Size值来无限接近原先大小,但此时整个尺寸比例的逻辑已经混乱。如下图。