如何让每个精灵分别用文本显示血量
-
现在场景会每隔5秒创建一个相同精灵的敌人,我需要用文本分别显示他们的血量,当他们当中某一个血量发生变化时,只有那个血量有变化的精灵所对应的文本会跟随变化
-
文本是绑定在敌人身上的吗?如果是一个敌人对应一个文本,且所有敌人的数量跟这个文本的数量相同,那直接设置文本的值为敌人的血量,就会自动按生成次序一一对应上的。如果敌人和文本的数量不一样,就需要自己利用一些数据让敌人的实例和文本的实例产生联系了,例如一开始提到的绑定,当敌人的实例变量_生命值变化时,选中跟该敌人实例绑定的文本,设置文本为该实例变量的值。
-
文本数量与敌人数量是一样的,各自一一对应,但是例如其中一个敌人B的血量发生变化是,我用什么事件来找到文本B来设置它的文本内容?因为所有的文本ABC都是源自同一个文件元件,在事件选择上只能选择文本,但我没想到用什么办法来区分文本ABC
方便截个图来说明一下?
-
@NS0911 上面那位朋友说的大概是下面这种情况:
下面这个情况是利用了实例匹配的规则来完成的,这个规则大概是这样的:
当【动作】涉及了两个对象时(如下图中【敌人】对象与【生命值文本】对象),该【动作】会按这两个对象当前的实例选中数量,按生成次序来一一匹配。(当然这个描述不够全面,有一些情况没涵盖到,但你知道注意是这部分在起作用就好)
结果如下,由于每个【敌人】实例和【生命值文本】实例都是一起生成的,所以它们的生成次序和数量都是一一匹配的,也就能自动一一对应,不过这种做法从某种意义上可能不太方便管理,因为有时候我们可能会需要它们的数量不相等(如果确认没有这样的情况,用这个方法偷个懒其实是很方便的),所以这里还有其他方法去让它们一一匹配,也就是上面那位朋友提到的如果敌人和文本的数量不一样,就需要自己利用一些数据让敌人的实例和文本的实例产生联系了
如果两者数量不一致,且生成次序没能做到一样,则需要自己去写匹配规则了,基本上就是选中【生命值】产生变化的【敌人】实例,然后依据当前选中的【敌人】实例,去选中对应的【生命值文本】实例,示例如下,利用了【绑定】能力可以【获取到所绑定对象的UID】的表达式:
结果如下,这里之所以用【绑定】来做两者之间的联系,主要是因为【绑定】能力本身也能起作用,因为“敌人”在设计上一般是会移动的(绑定能力能让文本跟着敌人一起移动),就算不会移动,也不影响这个效果,但如果不是这种生命值挂在敌人身上的设计,那就要换一种方式让它们之间产生联系了,但整体的做法依旧是类似的。