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个数】: