第 26 天:在 Unity 中轻松构建 UI 元素

第 26 天:在 Unity 中轻松构建 UI 元素

客观的 : 我们如何开始统一使用 UI 来为我们消灭的每个敌人显示分数文本?

视频游戏的主要方面之一与 UI 有关。 UI 是用户界面的首字母缩写。用户界面基本上会在游戏屏幕上显示许多东西,无论是分数系统、生命、健康、武器等。

在本文中,我开始通过创建评分系统来测试我的用户界面。首先,我基本上在我的层次结构中创建一个对象并选择 UI 文本,这将在我的游戏屏幕上显示文本。

creating UI object

这将在我们的场景视图中打开一个画布,我们可以在左上角、右上角、中心顶部预设一个锚点,无论我们想要布局此文本。在文本框中,将布置我们想要在游戏视图中布置的文本。

tools we can use to layout our UI text

在画布中,我想随着屏幕大小缩放,这样我布局 UI 文本的区域将保持在该位置,而不管游戏视图的比例(范围从移动视图到电视。)

selecting scale with screen size

既然我在要显示它的区域中设置了这个设置,我现在想进入每次击倒敌人时,我都会继承一个得分值的行为。这确实需要大量的脚本通信!

我从一个 int 变量开始,并在我的播放器脚本下创建一个新方法。 int 变量表示每次击中敌人后得分将加 10。所以现在我必须跳进我的敌人脚本并与玩家交流这种行为。

new method in player script

communicating enemy script with player script

虽然,这是一种交流方式,但它可能会有点麻烦。这要求我们击中的每个敌人都需要一个 GetComponent 系统。一个更好的方法是分配一个新变量作为句柄并使用 void start 下的 Find GetComponent。

using GetCompnent in void start

现在我们有了组件,我现在可以将 player 方法传递给敌人脚本,成功建立这两个脚本之间的连接。

现在我想和 UI 经理沟通!通过创建一个新脚本,并为 UI 管理器创建一个句柄。

another variable we can use as a handle

我在敌人脚本中做了同样的事情,我想使用该变量句柄来获取我的乐谱文本所在的画布组件。

using another handle to grab component of UI manager

我在 UI 管理器脚本中创建了一个新方法,以帮助将玩家得分文本的显示传递给玩家脚本,从而成功地将这两个脚本相互通信。

最后,在执行并成功地相互通信所有指定脚本之后;当我运行游戏时,我现在有一个成功的 UI 显示文本,玩家每次摧毁敌人我都会获得 10 分。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/30330/49111208

posted @ 2022-09-12 08:49  哈哈哈来了啊啊啊  阅读(115)  评论(0编辑  收藏  举报