dk uma ingame creator 插件源码分析

dk uma creator 有什么用:

可以让玩家创建自己的Avatar,并将角色保存并导出到所需的game场景中,期间的整个过程,完全不需要我们写一行代码。
这个插件包含了许多自带的equipment slots,如皮带,斗篷等,供我们使用。

添加slot、overlay的步骤:

1、首先分析DK_RPG_UMA,这个是生成Avatar的核心组件

分析DK_RPG_UMA:
生成过程:DK_UMA_UI_Variable组件中的GenarateFirstAvatar方法

在genarate中添加到NPC Models中:

这个raceData是就是我们后面我们在 Game界面上可替换的Element元素来源(可以对比前面介绍的Race Creator看看)

2、初始化DK_UMA_UI_Variable组件,并赋值


备注:
(1)DK_RPG_UMA属性,指定了我们动态生成的Avatar
(2)List里面就是我们在scene中能使用的Slots与Overlays。【也就是衣服等部件的library】
(3)Race List就是Game界面上面的人物切换来源。

3、以legs为例【动态添加Slot与Overlay】:


SLOTS中:
foreach (  DKSlotData slot in _DK_RPG_UMA.RaceData._Male._AvatarData._Face._Head.SlotList ) {
                    // compare races
                    if ( slot.Race.Contains(_DK_RPG_UMA.Race) == true ) {
                        // add to the correct list
                        Lists.HeadLists.SlotList.Add (slot);
                    }
    }

    foreach ( DKOverlayData overlay in _DK_RPG_UMA.RaceData._Female._EquipmentData._Head.OverlayOnlyList ) {
                    // compare races
                    if ( overlay.Race.Contains(_DK_RPG_UMA.Race) && overlay.AvailableAtStart ) {
                        // add to the correct list
                        Lists.HeadWearOverlayOnlyLists.OverlayList.Add (overlay);
                    }
                }
                // get the current slot's overlays
                GetOverlaysForSlot ( null, "HeadWearOverlayOnly");
在Overlays中:
foreach ( DKOverlayData overlay in _DK_RPG_UMA.RaceData._Female._AvatarData._Face._Head.OverlayList ){
                if ( Lists.HeadLists.OverlayList.Contains (overlay) == false )
                    Lists.HeadLists.OverlayList.Add ( overlay );
   }

4、菜单初始化

以equipment菜单为例: DK_UMA_UI_EquipmentMenu
生成自定义菜单栏后,菜单点击事件:

之后,右边的UI换成Legs【即DK_UMA_UI_LegsWear】,然后,我们就能通过Legs菜单,添加删除衣服了

添加删除衣服关键代码:

备注:下面这句话就是,界面上element的元素个数【DK_UMA_UI_Variable的Lists属性中的对应Slot个数】:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值