在前一天,在游戏结束画布上创建了一个商店按钮,以便购买增强道具。目前,该按钮尚无任何功能,因为尚未创建物品商店场景。今天,目标是:
理论上,创建物品商店场景有多种方法。不必为此创建一个新场景。实际上,可以将其作为同一个场景的一部分,并使其成为另一个画布。然而,很少使用场景,所以抓住这个机会来尝试。
在项目中,当前场景被称为"scene",让将其重命名为"main"。创建一个名为"Scenes"的新文件夹,并将"main"场景放入其中。
接下来,通过按Ctrl + D复制"main"场景,并将其命名为"shop"。选择复制是因为希望保留很多内容。
现在在"shop"场景中,除了以下内容外,删除所有内容:
其他所有内容都不需要,并将根据需要重新添加,但这些将是目前需要的核心组件。
现在,如果还没有保存场景,请保存。
在为游戏创建UI之前,让将场景添加到构建设置中。有了这个变化,可以从"main"场景访问"shop"场景。
在"main"和"shop"中,转到"File > Build Settings",然后点击"Add Open Scene"。确保"main"是0,"shop"是1,必要时重新排列它们。
应该有类似这样的设置:
为什么按这个顺序添加场景很重要?可能会记得在前一天的"GameOverCanvasController"中,有这些代码片段:
public void ClickRestartButton()
{
SceneManager.LoadScene(0);
}
public void ClickShopButton()
{
SceneManager.LoadScene(1);
}
当点击重启按钮时,"SceneManager"加载场景0,即"main"场景,当点击商店按钮时,加载场景1,即现在的"shop"场景。
现在,如果玩游戏并点击"Shop Button",将被带到"shop"场景。
回到"shop"场景,是时候为"Item Shop"制作新的画布了。为了节省一些工作,让复制现有的"Game Over Canvas"。
从"Prefabs"文件夹中拖动"Game Over Canvas",然后将其重命名为"Item Store Canvas"。
删除游戏对象中的"Game Over Canvas Controller"脚本,将制作一个新的。
将"Game Over Panel"重命名为"Item Store Panel"。
删除"Item Store Panel"中的所有子游戏对象。
值得注意的是,有一些特殊属性:
当前的结构看起来像这样:
在创建UI之前,这是想要制作的:
它们在层级结构中看起来像这样:
在这一点上,想说应该对创建UI感到舒适,所以将快速通过这部分。
注意:使用的位置可能会有所不同,这取决于相机设置在哪里,所以将省略这部分,并在某些点上留给自己调整。
将"Item Store Canvas"更改为具有150的宽度,
创建3个新的文本UI游戏对象并将其子化到"Item Store Panel",这些将是游戏中的标题。将字体大小更改为18,将缩放值更改为(0.5, 0.5, 0.5)。
将宽度更改为120,高度更改为。从那里,调整Pos X和Pos Y,使它们看起来像上面的图片。
对于3个图标,使用了位于Prefab中的增强道具预制件。将它们拖入场景,使它们成为"Item Store Panel"的子项,并移动它们的位置,以便可以正确地看到它们。值得一提的是,如果火箭的粒子效果离得太远,它就不会显示,所以不得不将它移动得比其他游戏对象更近一些。
创建3个按钮UI游戏对象并将其子化到"Item Store Panel",这些将是用来购买升级的购买按钮。将缩放更改为(0.2, 0.2, 1),宽度更改为160,高度更改为30。
创建一个按钮UI游戏对象并将其子化到"Item Store Panel",这将是开始游戏的按钮,缩放是(0.5, 0.5, 0.5),宽度是160,高度是。
创建一个文本UI游戏对象并将其子化到"Item Store Panel",将其命名为"Coin Text",这将用于显示拥有的硬币数量。
就这样,现在将拥有一个像制作的那样的UI。
第98天结束
随着新的物品商店UI的创建,是时候结束这一天了!
在这里停下来,因为要继续将UI与代码集成,将不得不创建一些数据模型,定义增强道具变得有多强,它们花费多少,以及拥有它们的等级,这本身就是一个单独的话题。
下一篇文章将会很大,所以请期待它!
第97天 | 第100天的VR | 第99天