几个问题建议



  • 1.能否增加三目表达式,本可以简短的语句却只能去用分支
    2.联网变量能否先本地储存那样有读写成功或失败的触发器,因为目前联网变量读写失败会有两种情况:a变量有变化但为空;b变量无变化且毫无征兆,自己做读写成功失败的判断很不靠谱,因为你无法知道是本身为空导致的无变化,还是无变化导致的为空
    3.联网变量设置初始值没有作用,且字符型联网变量初始值如果带英文引号后进行预览游戏会提示网络异常,去掉引号就好了,屡试不爽
    undefined
    4.编写语句时能否增加异步和同步执行的选择,写游戏中我发现有的语句时同步的,有些则是异步的,常常会出现一些因为同步异步造成的奇奇怪怪的bug且很难解决,甚至无法解决



  • 三目运算符其实是一直都有的,不过官方教程好像没用“三目运算符”这个说法😂 ,血条教程里倒是用了“三元运算符”的说法,以下截图来自官方教程:https://www.evkworld.cn/learn/210
    undefined
    undefined
    联网变量初始值没有作用可还行,其实并不是没有作用,联网变量的存取分开来看就能理解这个问题不在于初始值有没有用,而是无法主动控制联网变量的存取才让你产生了没有用的错觉。
    关于联网数据读取:联网变量整个游戏流程中(不退出游戏的情况视为一整个游戏流程),只会做一次数据读取,那就是游戏开始时,如果服务器上发现有联网变量数据,就会同步到本地,所以如果你之前在游戏中修改过联网变量的值导致服务器上同步了本地的数据(联网变量上传过了),那你之后在编辑器中修改的任何初始值,在产生作用后,都会由于这个联网变量的自动读取,被覆盖成之前的数据。
    上面这点也很好验证,你在场景开始时,判断变量是否等于你新设置的初始值,然后马上做出显而易见的变化,你就会发现,这个事件是生效了的,说明初始值确实是改变了的,但是由于上面我说到的数据的自动读取,所以你看到的值是之前上传的。如下面这个事件,该联网变量初始值是 d,所以一开始服务器没数据,精灵1会一直转,而按右键把变量改成asd后,数据同步到服务器,按下重启游戏后,精灵1会在一开始旋转一定的角度,然后就不再旋转,且该联网变量的值变成了asd,这是因为数据同步到本地需要花时间,所以一开始的时间里,该变量依旧是初始值的状态,才触发了旋转。
    undefined
    undefined
    关于联网数据上传:完成数据读取后,此后游戏流程中,每当联网变量数据有变化,就只会上传数据,不再触发读取数据,不过上传数据按客服的说法是有CD的,好像是上传过一次后,3到5秒之后如果发现数据依旧有差异,会再上传,也就是没法实时上传数据。
    关于联网数据检测:从上面这两个来看你应该大致知道了联网变量的运行方式,也大致清楚了联网变量对你而言的主要问题的在于无法主动控制存取,不过联网变量其实不是完全没有检测同步状态的条件的,有个“当变量同步中”的条件,当联网变量读取和上传时,该条件都会为真,所以结合联网变量的运行方式还是能一定程度控制流程的。
    网络异常那个我试了一下确实是会,等官方人员来处理吧(虽然我不太了解为啥要把双引号写在初始值,但既然是能明显触发的问题,就还是得修复的)

    最后我大致说一下我的看法吧,因为跟不少想做联网游戏的朋友有接触,所以大概知道了不少人把联网变量当账号存档来用,原因也很简单,这是目前唯一一个跟玩家账号有关联的联网数据,可以通过这个来应对玩家换设备、重装游戏等情况,让玩家保留账号数据,但就我的使用经验来看,这个联网变量一开始并不是这种定位的,排行榜和联网对战里的用法才是联网变量的常规用法,只是因为大家眼下没找到更好的方法,就强行让联网变量来充当这种存档功能我觉得有点怪,所以我个人觉得与其建议官方新增联网变量的检测条件,不如建议官方把本地存储组件新增上传存档和下载存档的功能,这不才是比较正常的做法吗……

    似乎是忘了回复你的第四点,不过我只是单纯没看懂,所以没啥建议可以回😂 ,关于事件表的运行,我觉得官方教程其实讲得很清楚了,主要是分清触发器条件和非触发器条件的运行机制就行了,https://www.evkworld.cn/wiki/320



  • emmm,又有了些新的理解



  • @欧拉欧拉 三元运算有bug,如图文本中如果有字符串拼接时,无论变量设置多少,三元运算的结果只会是"窝",并且"我的"和"在东北"也不显示
    undefined

    这样三元运算的结果是"家",是对的,这是发现问题后用新项目去验证的,没有其他干扰
    undefined

    试了下用追加文本显示为"我的家在东北",是对的,但这样好麻烦哦😖
    undefined



  • @欧拉欧拉 是字符串与三元拼接有误么?



  • @欧拉欧拉 undefined
    检查了符号都是英文符号,把三元中的双引号换成单引号直接通过不了undefined



  • @欧拉欧拉 找到原因了😞,拼接字符串时三元需要加个括号
    undefined



  • @大伯kiss 这个是运算符优先级问题啦😂 ,不加括号的时候应该是把前面的先运算了,变成了 "我的"全局变量1这个整体跟1判断是否相等



  • 感谢两位的反馈,我们会评估并汲取其中合理的建议部分,对编辑器做持续的功能优化的。


登录后回复