官方文档是英语的,写的还算不错,但是有些应该明确强调的地方写的很泛泛,英语水平还算勉强可以的我看的都十分费劲。于是总结一个小文档,重点解决一个问题。
Opsive Controller的装备系统概要
本文的前提是你对文档有个大概了解,但是有些还不是特别清晰的情况,完全不看官方文档和视频,看这篇似乎也没多大用。
一个ItemType可以对应多把武器吗?
不可以,因为一个ItemType只能对应一个武器,添加武器的时候用的是ItemType,不是你具体的武器。
动态生成好,还是静态绑定一个武器到一个人物好。
其实没有优劣之分,因为每个模型可能存在差异,其实武器绑定到指定模型也没什么大不了的,不见得就比动态绑定差多少。或者说灵活性差多少。否则一个武器上绑定的参数,尤其是枪械位置参数和握枪位置参数不一致,反而产生了更大的麻烦。
如何消耗弹药
设置武器的ConsumeType为弹药Type。这里注意一下,如果不设置,则武器为无限弹药,不会也不需要装弹。
SlotID又是什么?
SlotID = 0为主手,一般为右撇子,SlotId = 1 为副手。
一般武器都是装在主手上。
如果双持武器,则需要一把武器主手,一把武器右手。
ItemSet是什么?
是预制的几种配搭情况,这块是我有一次武器说什么也装不上去的原因!就是因为没有定义ItemSet。比如一把突击步枪,装备在右手,如果你有一个ItemSet,能让左手同时装备一把匕首,那么这把匕首可以同时和突击步枪装备,但是没有这个ItemSet,只有一个主手装备突击步枪的ItemSet,那么匕首永远无法装备,突击步枪可以装备到主手
AnimatorItemID如何填?
如果是已经有的动画组,直接填上对应的数值即可。否则拿大枪的动画,给手枪用上,势必不好看,同时如果想要增加新武器,比如十字弩,可以在动画状态机里面配置新的动画组和组ID,并给十字弩配置对应的ID即可正确匹配动画。
如何通过代码向UCC加载一个道具。
调用函数PickupItemType即可。
如何集成FPS-RPG类型的Inventory到UCC。
这个也是我面临的问题,答案是
首先明确一个观点,UCC的Inventory和RPG的Inventory不能混为一滩。
取消掉UCC自带的切换武器逻辑。
在初始化的时候,要在状态栏里面选择一把武器,装备给UCC的控制器
把所有快捷栏里面的武器,都装备给UCC,把所有快捷栏和人物主背板里面的弹药,装备给UCC。
UCC要监听你自己的RPGlike物品栏变化事件,当武器(弹药)被从快捷栏移走,或者存到仓库时,要同步变更UCC的背包。
背包要监听武器的开枪换弹事件,一旦开枪,或者换弹,要动态的变更背包里面的弹药的数量。
丢弃武器逻辑完全可以禁止掉,因为RPG或者沙盒类型的武器丢弃,应该在背包里面进行。
PS:我自己的沙盒游戏正在紧锣密鼓的制作中,到时候发布了,还请大家多多支持~