对象筛选器
# 对象筛选器
上一节介绍了如何展示控件,并且如果利用绑定类,让对象
的按钮,修改自身的属性。那么如果我们想在其他地方一次性修改多个对象的属性怎么办呢?那么我们就可以通过对象筛选器
去实现。首先我们利用筛选器,筛选出待操作的一些对象,然后我们再统一的去修改他们的属性。
# 新建筛选器
通过编辑器右侧,可以直接添加筛选器
对象筛选器拥有下图所示的一些编辑项
筛选器基本介绍
编号 | 类型 | 说明 |
---|---|---|
1 | 筛选器名称 | 用以备注查看以及在其他地方引用 |
2 | 筛选器对应类 | 当前筛选器需要筛选的类,选定的哪一个类当前筛选器就筛选指选定类的对象 |
3 | 筛选条件 | 这里添加需要筛选目标的属性条件,类似需求属性,如果对象的属性未达到条件,则不会被筛选出来 |
4 | 属性计算 | 对已选择出来的对象,进行数量、属性之和、属性之积的计算。可以用来做一些统计工作 |
# 筛选条件
我们可以通过设置筛选的条件,来决定哪些对象会被筛选出来。这个筛选条件使用的所有属性,均为筛选器筛选的类的属性。
提示
比如对象拥有属性a,然后筛选条件为a>10,那么这个筛选器就会把所有a属性大于10的对象筛选出来。假设筛选出了5个对象,那么你还可以通过设置,决定最终返回的对象数量,比如设置返回数量为3,那么最终筛选出来的对象数量就是前3个。
# 筛选器属性
筛选器属性,是对筛选出来的对象进行一些统计工作。比如,你可以通过筛选器属性,统计出筛选出来的对象的数量,或者是所有对象的属性之和,或者是属性之积。
注意
筛选器属性与一般的属性不同,他是一个固定的值,每一帧更新一次,无论你怎么对他做修改,都不会生效。
# 筛选的范围和返回结果
无结果代表全选:勾选后,如果根据条件筛选不出来实例则选择对象所对应的所有实例。
无筛选结果则代表不足:勾选后,如果根据条件筛选不出来实例则直接返回FALSE,这只针在对在控件、事件的【对象需求】中生效。
# 二次筛选
当根据筛选属性筛选出对象后,可以对该列表做二次的排除
- 不二次筛选:不做二次筛选,直接返回筛选出来的对象列表。
- 最多某个数量:指的是满足条件的实例中随机选择指定数量的实例。
- 排除当前绑定对象:若该筛选器在绑定了对象的控件中使用,则筛选时,会排除自身绑定的对象。如一个对象攻击其他全体对象时,就可以通过这个选项,直接排除自身,就不会自己打自己。
# 筛选器的应用
筛选器最重要的作用就是在控件
或事件
中,对对象的属性进行转化。我们可以设置需求对象属性,消耗对象属性与使对象获得属性。这几个转化,都离不开筛选器的筛选功能。
当开启后,就可以看到对象的相关操作
# 需求对象属性
我们可以给需求对象属性
添加一个筛选器,然后设置筛选出来的对象,应该满足哪些条件。
即只有筛选出来的所有对象,都满足对象属性的需求,本次需求对象属性
才会通过判断。
提示
优先判断控件的需求属性,再判断对象的需求属性。
如果是事件设置了与对象相关,那么就会有触发需求对象属性
,其原理与需求对象属性
相同。
# 消耗对象属性
顾名思义,就是对筛选出来的所有对象,做一个消耗操作,即消耗的是对象的属性,当对象不存在指定的属性时,会消耗玩家的属性。
# 使对象获得属性
顾名思义,就是对筛选出来的所有对象,做一个增加属性的操作,即获得的是对象的属性,当对象不存在指定的属性时,会使玩家获得该属性。
提示
当对象不存在指定的属性时,会使玩家获得该属性。所以假设我们设置的是使筛选出来的对象获得1点属性a, 那么筛选出来个5个对象都没有属性a的情况下,玩家就会获得5点属性a,因为一共筛选出来了5个对象。 消耗同理。
注意
若控件
为绑定了类的控件,事件
为对象的事件,那么就涉及到一个属性,到底采用对象的还是玩家的问题。
若在对象控件或对象事件引用了当前对象类的筛选器,则属性以筛选器的筛选出来的对象为准。
若在对象控件或对象事件引用了其他类的筛选器,则属性以筛选器的筛选出来的对象为准,若筛选出来的对象没有对应属性,则以控件或事件的对象为准,若都没有则以普通玩家属性为准。
具体见下图:
# 视频教程
本文字教程持续更新中!还有很多内容没来得及完善,可以先看视频教程~视频较老,部分界面可能不同,理解概念即可