当前位置: 代码迷 >> 综合 >> Opsive Ultimate Character Controller(2)装备道具的要点
  详细解决方案

Opsive Ultimate Character Controller(2)装备道具的要点

热度:39   发布时间:2024-01-30 07:51:07.0

官方文档是英语的,写的还算不错,但是有些应该明确强调的地方写的很泛泛,英语水平还算勉强可以的我看的都十分费劲。于是总结一个小文档,重点解决一个问题。

Opsive Controller的装备系统概要

本文的前提是你对文档有个大概了解,但是有些还不是特别清晰的情况,完全不看官方文档和视频,看这篇似乎也没多大用。

  1. 一个ItemType可以对应多把武器吗?

    1. 不可以,因为一个ItemType只能对应一个武器,添加武器的时候用的是ItemType,不是你具体的武器。

  2. 动态生成好,还是静态绑定一个武器到一个人物好。

    1. 其实没有优劣之分,因为每个模型可能存在差异,其实武器绑定到指定模型也没什么大不了的,不见得就比动态绑定差多少。或者说灵活性差多少。否则一个武器上绑定的参数,尤其是枪械位置参数和握枪位置参数不一致,反而产生了更大的麻烦。

  3. 如何消耗弹药

    1. 设置武器的ConsumeType为弹药Type。这里注意一下,如果不设置,则武器为无限弹药,不会也不需要装弹。

  4. SlotID又是什么?

    1. SlotID = 0为主手,一般为右撇子,SlotId = 1 为副手。

    2. 一般武器都是装在主手上。

    3. 如果双持武器,则需要一把武器主手,一把武器右手。

  5. ItemSet是什么?

    1. 是预制的几种配搭情况,这块是我有一次武器说什么也装不上去的原因!就是因为没有定义ItemSet。比如一把突击步枪,装备在右手,如果你有一个ItemSet,能让左手同时装备一把匕首,那么这把匕首可以同时和突击步枪装备,但是没有这个ItemSet,只有一个主手装备突击步枪的ItemSet,那么匕首永远无法装备,突击步枪可以装备到主手

  6. AnimatorItemID如何填?

    1. 如果是已经有的动画组,直接填上对应的数值即可。否则拿大枪的动画,给手枪用上,势必不好看,同时如果想要增加新武器,比如十字弩,可以在动画状态机里面配置新的动画组和组ID,并给十字弩配置对应的ID即可正确匹配动画。

  7. 如何通过代码向UCC加载一个道具。

    1. 调用函数PickupItemType即可。

  8. 如何集成FPS-RPG类型的Inventory到UCC。

  1. 这个也是我面临的问题,答案是

    1. 首先明确一个观点,UCC的Inventory和RPG的Inventory不能混为一滩。

    2. 取消掉UCC自带的切换武器逻辑。

    3. 在初始化的时候,要在状态栏里面选择一把武器,装备给UCC的控制器

    4. 把所有快捷栏里面的武器,都装备给UCC,把所有快捷栏和人物主背板里面的弹药,装备给UCC。

    5. UCC要监听你自己的RPGlike物品栏变化事件,当武器(弹药)被从快捷栏移走,或者存到仓库时,要同步变更UCC的背包。

    6. 背包要监听武器的开枪换弹事件,一旦开枪,或者换弹,要动态的变更背包里面的弹药的数量。

    7. 丢弃武器逻辑完全可以禁止掉,因为RPG或者沙盒类型的武器丢弃,应该在背包里面进行。

 

PS:我自己的沙盒游戏正在紧锣密鼓的制作中,到时候发布了,还请大家多多支持~

  相关解决方案