评论

绝对新手教程系列8-有事儿的话,记得@我

通知就像你是在群里发消息一样,可以@某个人,也可以@所有人。

这一节我们主要学习游戏开发中的一种常用的工具---通知,也称事件。

之前提到过,通知可以理解为给别人发信息,这个过程需要有两方的参与,一个发送方,一个接收方。发送方负责发送通知,而接收方决定收到通知后该如何做。

发送的通知可以是“一对一”的,也可以是“一对多”的,就如同“单聊”和“群发”。

“通知”在游戏开发中会频繁的使用到,它是游戏世界中的物体间进行通信的最重要的方式。

理解了“通知”的概念,下面我们就直接上手,创建一个通知,并在两个物体间使用通知进行通信。

在最右侧的数据区中点击“新建通知”按钮。

在弹出框中为通知起个名字,这里给这个通知起名叫做“战机被点击”。然后点击“确定”。

观察数据区的通知部分,可以看到有一个叫做“战机被点击”的通知。

小提示:与变量一样,点击通知,左侧会出现红色的带减号的圆,点击它即可删除通知。

这样一个通知就创建好了,下面我们利用这个通知实现一个这样的功能:在游戏中增加一个数字用于显示战机被点击的次数。

整个流程是这样的,当我们点击战机时,战机会发送一个“战机被点击”的通知给数字,数字收到“战机被点击”的通知后,会将自己显示的数值增加1。

首先,我们为游戏添加一种新型的素材“数字”。顺便回顾一些,如何向游戏中导入素材。

在资源管理区,点击“添加素材”按钮。

在素材库中选择“积木小Y”,“白色数字”,然后点击“导入”按钮。

资源管理区中出现了“白色数字”资源,层级管理中出现了“白色数字”的层级,在编辑区中出现了白色的数字0。

接下来,我们先配置通知的发送者,即我们的“战机”。

在层级管理中选择“战机”,然后在积木区中点击“添加事件”按钮,选择“当精灵被点击时”事件。

积木区会增加一块这样的积木,它的意思是当游戏中我们的战机被点击时,我们就会接收到一个“当精灵被点击” 的通知,在接收到通知后我们需要做一些自己的处理。

请注意,在这里我们的战机作为的是通知的“接收方”,那么谁是发送方呢?管它呢,我们只关心战机被点击时,我们需要做什么。

接下来我们要做的事情是,选择积木区右侧的“控制”,然后将里面的“通知所有人战机被点击”的积木块拖拽到积木区,放到“当精灵被点击时”的积木块中。

像下面这样。

这里的通知默认是发给“所有人”的,但是我们只想发给游戏中的数字。点击“所有人”下拉框,选择白色数字->(场景1)白色数字。

最后看起来是这样,非常具有针对性的对“场景1中的白色数字”发送了一个“战机被点击”的通知。

小提示:“战机被点击”是我们之前在数据区中创建好的通知,你可以点击积木块上的“战机被点击”右侧的下拉按钮,切换其他已经创建的通知。

这样我们的“发送方”就配置好了,当我们在游戏中点击战机时,就会给“白色数字”发送一个“战机被点击”的通知。

点击“预览场景”,然后点击你的战机,看看发生了什么。

没有任何事情发生。。。

那是因为我们只是发送了通知,但是接收方对于通知还没有做出任何的响应。

下面,我们来配置一下接收方,增加一些响应。

在层级管理中选择“白色数字”,然后在积木区中点击“添加事件”按钮,选择“当收到通知”事件。

积木区中会增加一个这样的积木块。它的作用就是接收“战机被点击”的通知,类似于一根天线的功能。

接着我们要做一些处理,选择右侧的“外观”选项卡,然后将里面的“将自己的值增加1”的积木块拖拽到积木区中。

最终看起来是这个样子。它的意思是:当接收到“战机被点击”的通知后,我就把自己的值增加1,像“0,1,2,3,4,5,6......”进行计数。

接收方也配置好了,再次点击“预览场景”按钮,在游戏中点击“白色战机”,看一下白色数值是不是跟随着你的点击开始增加了。

回顾一下:

我们学习了通知的概念,在游戏中创建通知,并利用通知在游戏中的两个物体间进行了一对一的“通信”。

通知在游戏开发中使用的非常的频繁,如果你还不能完全理解的话,请继续下面的的练习:

- 当点击红色敌机时,白色数字减1。

- 当点击蓝色敌机时,白色数字减2。

欢迎关注我的公众号:小蚂蚁游戏。手把手带你进入游戏开发的世界!

最后一次编辑于  2021-03-15  
点赞 2
收藏
评论

1 个评论

  • 舜子࿉ོ
    舜子࿉ོ
    2021-03-16

    劳模,教程很赞,期待更新哈

    2021-03-16
    赞同
    回复 1
    • 小蚂蚁
      小蚂蚁
      2021-03-16
      非常感谢做出了这么棒的工具,我自己正在学习使用中,顺带写了个系列教程,希望能帮助更多的游戏开发新手做出自己的小游戏。
      2021-03-16
      回复
登录 后发表内容