【お礼】AGM-GのVSサブレイヤー機能、その威力に驚愕!!!

1 以前因为手头的项目比较大,更新2.0版本的时机有些滞后。因此忽略了观察版本的功能更新。今天在朋友的提醒下,发现VS脚本竟然已经可以用子层进行多线程控制了。

2 我立刻进行了测试,并将英雄对象中之前为了避免多线程冲突而不得不使用子对象生成的动作(如自动回血机制、子弹射击机制等),全部整合进了同一个VS的子层中。

3 这一功能让我欣喜若狂,我立刻在国内的AGM群聊中不断夸赞和推广这一功能。我和同样感到欣喜的AGM朋友们隔着网络举杯庆祝!我说不能只让我们偷偷庆祝,要把这份喜悦也传达给辛勤工作的AGM官方!于是我写下了这篇致敬帖子。




(这是我已集成的三套动作,分别控制玩家的移动、自动回血、子弹发射。之后我还要把已开发的英雄技能,以及未来需要开发的大量增益buff等功能,都写进这个子层中)

4 我在制作第三层时遇到了死机BUG,连续出现了4次死机。死机过程如下:
(1)我将一个实例化子对象的VS所有动作复制到了英雄对象的VS脚本中。
(2)当我试图调整这个子层时,只要移动条件,就会死机——AGM直接崩溃闪退。


最后我排查出了导致崩溃的动作:
:yellow_heart: 我在英雄的子弹发射实例化子对象中设置了一个变量“发射速度”,并在条件中设置了“时间 > 发射速度”后直接切换动作。因为英雄对象本身并没有这个变量,所以估计AGM无法识别,导致了死机。
:yellow_heart: 我想最小化复现这个崩溃点,但遗憾的是,全新更新的项目和VS动作,即使执行同样的操作也不会死机。我推测是旧版本的VS动作与新版本冲突导致的崩溃。(毕竟这批动作几乎是在AGM诞生时就做好了。如今相隔一年,经历了AGM的多次大更新,估计已经不适配现在的版本了。)
:yellow_heart: 我给英雄对象补上了该变量,然后删除这几个条件,重新写入这些条件后,AGM不再崩溃,并且测试运行完美。

5 瑕不掩瑜,我还是激动地要致谢AGM官方。这一功能实在太强大了,优点多多:
(1)可以抛弃原来用子对象去控制并行功能的方法。这样既省下了建立子对象、建立新的VS脚本的繁琐步骤。同时还节约了子对象、子脚本产生的资源消耗。
(2)让游戏实现各种各样的复杂技能、BUFF效果、并行动作时都可以轻松搞定。多层VS脚本还有一个巨大优势,可以直接调取自身对象的各种变量和开关,不用再在子对象中手动一个一个去选择对应的对象属性了。
(3)让整体对象中的节点结构变得更加简洁轻快。

6 激动之心无以言表,这次真的为AGM-G的进化感到骄傲,再次对AGM官方表示敬意。非常感谢!

「いいね!」 3

ついにフリーズの根本原因がわかりました。それは、コピーしたVSスクリプト内にショートカットが含まれており、ショートカットをコピー&ペーストすると一時的に無効になってしまうためです。この問題については別スレッドで説明します。