在上一篇文章,我们介绍了如何将GA应用到角色身上的,接下来这篇文章,将主要介绍一下GA的相关配置项。
在这之前,再多一嘴,你要能激活技能,首先要先应用到ASC上面,才能够被激活。
标签
之前介绍过,GAS里重要的组件标签,GA和GA之间的逻辑处理也是通过Tag来实现的,接下来,介绍一下标签下面的配置项如何去使用。
标签可以按需求设置多个
- Ability Tags :描述技能的标签,当设置了标签,我们可以通过使用标签来对技能处理,比如使用标签激活技能,结束技能等等。
- Cancel Abilities with Tag :在此技能激活时,如果其它技能的Ability Tags 设置了Cancel内的标签,将会被结束。
- Block Abilities with Tag :当此技能激活,其它技能的Ability Tags设置相同的tag,将无法激活。
上面三个属于一个范畴,第一个是设置技能标签,相当于技能的另外一个名称,另外两个tag设置则是一个逻辑处理,举个例子:如果角色在使用一个持续的技能,被应用了一个眩晕的技能,眩晕的技能里,就应该把持续技能的标签设置到Cancel和Block中,来停止技能,以及再次激活技能。
- Activation Owned Tags :当技能激活时,将设置的Tag应用给技能所有者,在结束时删除。如果将AbilitySystemGlobals里面的配置ReplicateActivationOwnedTags开启,Tag还将会被复制。
- Activation Required Tags :当技能激活者拥有设置的所有的Tag时,此技能才能够被激活。
- Activation Blocked Tags :当技能激活者有一项设置的Tag,技能就无法被激活。
- Source Required Tags :当技能所有者拥有设置的所有的Tag时,此技能才能够被激活。
- Source Blocked Tags:当技能所有者有一项设置的Tag,技能就无法被激活。
- Target Required Tags :当技能目标者拥有设置的所有的Tag时,此技能才能够被激活。
- Target Blocked Tags:当技能目标者有一项设置的Tag,技能就无法被激活。
后六项基本上属于 对三个对象的设置 技能激活者 技能所有者 技能的应用目标,一项是设置必须拥有的Tag,一个是可以阻止激活技能的Tag.
输入
如果开启了Replicate Input Directly ,你的操作事件将会被同步到服务器。
Costs
cost这里我们可以设置一个GE,用于计算当前技能的消耗,比如消耗血啊,消耗蓝啊
设置完成以后,你需要在蓝图里面调用CommitAbility节点,去应用GE,返回值如果扣除成功将返回true
触发器
触发器可以在角色身上添加了某个Tag时,来触发此GA
Trigger Source :
Gameplay Event: 接收到带有Tag的Gameplay Event时触发GA,角色身上不会拥有此tag
Owner Tag Added :OwnerActor添加相应的tag时触发GA,每次添加触发一次GA
Owner Tag Present :OwnerActor拥有此tag的时候触发GA,失去时将取消GA
冷却
冷却和cost一样,也是需要使用一个GE去实现
当然,冷却也一样会被CommitAbility节点去核查冷却时间是否已经达到。
高级设置
高级设置里面主要设置同步策略以及实例化相关一些设置。
下面我们将对这些参数一个一个的介绍:
Replication Policy 是否将技能的状态更新到每个客户端和服务器,Do Not Replicate 为不更新
不要使用它,默认即可,GA已经从服务器复制到每个客户端(GA不会在Simulated Proxies上运行)
Instancing Policy 实例化策略 GA蓝图相当于一个类,我们每次激活GA相当于去实例化一个实例
- Instanced Per Actor:给GA只实例化一个实例,每次激活都重用当前的实例,能够持久的存储数据
- Instanced Per Execution :每次激活GA创建一个新的实例,不存储变量数据,性能低于Instanced Per Actor
- Non-Instanced:使用类的默认对象,不实例化,性能最好,不能存储状态,不能使用委托。
Server Respects Remote Ability Cancellation 这个参数设置如果客户端取消技能,服务器会同步取消掉。不推荐使用,以服务器为准最好。
Retrigger Instanced Ability 开启后,当前技能已经被激活,将关闭技能重新触发,Epic不推荐使用
Net Execution Policy 网络执行的策略,当前的技能需要在什么地方执行 - Local Only: 只在本地执行,服务器不运行GA,这个推荐不影响其它客户端的GA
- Local Predicted: 先在本地客户端运行,然后在服务器运行,可以使用预测策略,回滚操作。
- Server Only: 只在服务器运行,这个适合不需要和客户端有交互的内容
- Server Initiated: 在服务器端初始化,然后复制到本地,有延迟,不如Local Predicted
Net Security Policy 安全策略:分为执行GA和终止GA两项 - Client Or Server : 没有安全策略,客户端或服务器可以自由执行和终止GA
- Server Only Execution :执行会被服务器忽略,但是可以请求服务器中止GA
- Server Only Termination:客户端请求取消或终止GA将由服务器监视。客户端仍然可以请求执行GA
- Server Only:服务器控制GA的执行和终止,客户端的请求都将被忽视掉。