目的
根据等级之类的来显隐龙骨上的插槽,以丰富表现。
实现
尝试了Slot对象的visible设置成flase,没有效果。设置displayIndex=-1,部分部件有效果,但是一些部件被动画控制的,就会又被显示出来。因为displayIndex属性也是会被动画控制。根据官方的论坛说明,可以设置displayController的名称。
private void SetDragonSlotHidden(bool isActive)
{
if (!string.IsNullOrEmpty(m_SlotHiddenStr))
{
if (isActive)
{
var slotNames = ListEx.StringToArrayString(m_SlotHiddenStr);
foreach (var slotName in slotNames)
{
var slot = m_ArmatureComponent.armature.GetSlot(slotName);
if (slot != null)
{
slot.displayIndex = -1;
slot.displayController = "随意的名称";
}
}
}
else
{
var slots = m_ArmatureComponent.armature.GetSlots();
foreach (var slot in slots)
{
slot.displayIndex = 0;
slot.displayController = null;
}
}
}
}