Skip to main content

Protoflux图形化编程:FireOnTrue与FireOnLocalTrue的区别

在部署事件的时候,FireOnTrue是一定会用到的,它的用途是在检测某个物件发生变化的时候,进行下一步操作。

image.png



 

 

 

 

 

 

 

 

 

官方简介

FireOnTrue 节点会监听其输入布尔的变化,并在输入从 到 跨更新时为指定用户发送脉冲FalseTrue

OnlyForUser(用户))

那个会监听布尔值并触发脉冲的用户。

作为最佳实践,绝不应根据用户不同(例如通过LocalUser)而放弃或进行不同的评估。如果该输入属于某个用户且节点被父级管理,那么该用户将触发冲冲。如果该输入在某个用户下且未被父级化,或者不同用户的评估方式不同,那么冲动通常会被第一个看到值变化的用户触发。通常是这个人导致了变化。如果不加以妥善管理,这可能导致行为不一致。如果期望每个本地检测到变化的用户都会触发一个脉冲,那么可以使用页面底部链接的本地版本节点。nullnullnull

条件(bool)

那个应该被重视的布尔来做修改。

OnChanged(冲动)

每当输入从 到 跨更新时,指定用户会发出单一脉冲FalseTrue

如同官方说明的那样,如果说不希望出现同步问题,那么最好的方法,就是让代码在本地上运行,这样的话,所有的事件都会在本地完成,不再需要等待服务器的同步,而房主本身只需要等待客户端同步操作就可以了。

例子

20251209164928_1.jpg

这是一个C4炸弹。而地图中有一个模块,就是如果玩家处于爆炸中心,则会进入布娃娃状态。

那么,我们要做的,就是确保触发之后,能够进入布娃娃状态。

 

 在这个简单的判定图中,可以看出为了确保判定正常,使用的是FireOnLocalTrue,如果说使用的是FireOnTrue的话,有很大概率会出现无法同步的问题。

简单来讲,就是别人被炸飞了,但是没有进入布娃娃状态,但反而你自己被炸飞了,这是道具部署中不希望看到的。

对于一个P2P游戏来说,确保不出现同步问题,是开发游戏模式的一个重要一点。