推荐阅读:

      通常在游戏中都有商店系统,商店系统可供浏览商品,购买商品,今天就和大家聊聊这些功能的实现吧。

(1)创建一个空物体,并命名为ShopPanel,并设置拉伸方式
浏览英雄,购买英雄等功能之一(搭建UI场景)
(2)创建image作为背景,并命名为bg,拉伸方式同上
(3)创建Image,添加ScrollRect组件并取消勾选垂直滑动的选项,将其作为屏幕上的滑动与区域(在该区域滑动即可浏览商品),命名为ScrollRect,拉升图片如下
浏览英雄,购买英雄等功能之一(搭建UI场景)
(4)在ScrollRect下创建一个空的子物体,并命名为viewport,拉伸方式同上,将其设置为滑动区域的滑动内容
浏览英雄,购买英雄等功能之一(搭建UI场景)
(5)在viewport下创建一个GameObject,作为被浏览的商品,设置宽高为160,命名为item。
为了实现选中放大,未选中缩小的效果,在item下创建Image子物体添加图片,当需要放大缩小物品时,直接放大缩小子物体;再复制3个item,并依次往后排列,如下:
浏览英雄,购买英雄等功能之一(搭建UI场景)
(6)此时运行发现后面的物体到不了屏幕中间,为了让最后一个能停留在屏幕中间,需要调整滑动内容viewport的大小。由于一个商品大小事160160,且第一个商品距离屏幕左边是160,共有4个物品,所以滑动内容viewport的宽度应该为1606=960。如果直接设置viewport的宽度,则出现下面情况
浏览英雄,购买英雄等功能之一(搭建UI场景)
我门希望的是他只往右拉伸,为此还需要重新设置拉伸方式,并设置中心点,然后修改其宽度(注意修改宽度的时机是修改了拉伸方式和中心点之后),如下
浏览英雄,购买英雄等功能之一(搭建UI场景)
此时我们发现,物品往左移动了
浏览英雄,购买英雄等功能之一(搭建UI场景)
当然,这也不是我们想要的效果,所以我们在执行上面操作之前还需要进行一个操作,把物品的拉伸方式设置为left,Privot.x设置为0
浏览英雄,购买英雄等功能之一(搭建UI场景)
(7)将item作为预制体,并删掉所有item
(8)在ShopPanel上添加UI组件,显示效果如下
浏览英雄,购买英雄等功能之一(搭建UI场景)

相关文章: