萌新提问(如何调用对象的编号)



  • 一个对象克隆力8个(编号1-9),如何调用一个特定的编号?



  • @用户202533636 在编辑器内克隆的话可以不用注意编号问题,直接在界面左侧的图层组内容里选中即可;但如果需要区分每个实例,那么需要给对象增加一个实例变量,然后在舞台上选中每个实例并赋予对应的值,之后就可以在游戏中通过筛选选中的条件来选中对应的实例了



  • @zjxdiu 两个问题:1.“攻击”动画被“待机”动画覆盖了。2.就是下面到翻转了,不知道是覆盖还是逻辑不对。undefined



  • @zjxdiu 在背景图层中多个刷新点(1-9)生成同类组中的随机对象。前面到实现了现在就差随机对象了。



  • @用户202533636 这里有好几个问题。
    首先攻击被待机动画覆盖是肯定的,因为你的待机动画是只要角色速度为0就每帧执行一次,而攻击动画只有在触发器被触发的那一帧才执行一次,这里涉及到的是触发器和非触发器的事件执行逻辑,可以参考官方教程(https://evkworld.cn/wiki/320)。
    第二点,水平翻转的条件写法不太合逻辑;水平翻转是一种状态,只要设置了一次就会一直生效。
    综合来看,你可以试试我的写法,除了攻击动画我没有加入以外,其他逻辑应该能符合你的需求:
    undefinedundefined


    补充一点,我这里没有待机动画,所以用“停止播放”来代替。
    另外刚才发现少了一个开火动画,由于角色开火动画需要保证优先播放,因此可以使用实例变量进行记录,并且其他动画只有在“没有播放开火动画”时才能播放。
    undefinedundefined

    最后简单画了一个流程图,这个就是我认为的实现逻辑;如果跟你的需求有不同,可以参照进行修改,然后对应到事件逻辑上。
    undefinedundefined



  • @用户202533636
    在我之前的帖子里我有研究过这个,同类组的生成逻辑跟对象有点区别;如果你需要指定生成同类组中的某个对象,那么可以使用“通过名称创建实例”的动作,随后使用“选中最新创建实例”选中同类组,就可以执行事件了。但如果你只想要随机生成同类组中的任意对象,那么可以直接使用“创建实例”的动作来创建同类组,它就会自动进行随机选取和创建。

    如果需要创建之后跟踪这个实例,可以用任何已知值进行记录;例如我可以给同类组加入一个实例变量(假设为编号),然后分别给其中每个对象指定初始的编号值;场景中我生成了9个同类组中随机对象的实例,那么每个实例都会有自己的编号(当然,如果是相同的对象就会具有相同编号),之后我就可以通过所需对象的编号来进行选中和操作。

    如果每个实例都要分开,那么使用UID和IID是比较好的选择;UID是每个实例之间都相互独立(数值没有规律),IID则是每个对象的多个实例的编号(总是从1开始依次递增);如果对象是按顺序生成的,那么它们的IID顺序实际上也就是确定的,因此这里也可以使用“选中第N个实例”来进行操作。



  • @zjxdiu 有明显停顿显现,有办法优化没?undefined



  • @用户202533636 不是很清楚“停顿显现”具体表现是什么样的,这个写法理论上来说不会出现超过1帧的卡顿。当然我没有用过炮塔能力,所以不好说是不是这个能力的检测比较慢;优化的话我觉得最好还是按照状态机的方法写事件,虽然繁琐但是有用



  • @zjxdiu 是停顿现象。就是角色动画切换时有大于0.5秒的卡顿。


登录后回复