/// <summary> /// 设置角色是否可见 /// </summary> /// <param name="visible">If set to <c>true</c> b visible.</param> /// <param name="ignoreEffect">If set to <c>true</c> ignore effect.</param> public void SetActorVisible(bool visible, bool ignore_effect, bool force_show_headinfo, VisiblePriority priority) { if (visible) { m_VisiblePriorityBits = FlagOperate.RemoveFlag(m_VisiblePriorityBits, (int)(1 << (int)priority)); for (int i = (int)priority + 1; i < (int)VisiblePriority.MAX; ++i) { if (FlagOperate.HasFlag(m_VisiblePriorityBits, 1 << i)) { return; } } } else { m_VisiblePriorityBits = FlagOperate.AddFlag(m_VisiblePriorityBits, (int)(1 << (int)priority)); } if (visible) { if (mVisibleMode == EVisibleMode.Visible) { return; } mVisibleMode = EVisibleMode.Visible; mHasShow = true; mOwner.mAvatarCtrl.SetVisible(true); } else { if (mVisibleMode == EVisibleMode.Invisible) { return; } mVisibleMode = EVisibleMode.Invisible; mOwner.mAvatarCtrl.SetVisible(false); } if (force_show_headinfo) { if (InstanceManager.Instance.InstanceInfo != null && InstanceManager.Instance.InstanceInfo.mWarSubType == GameConst.WAR_SUBTYPE_BATTLE_FIELD) { mOwner.ShowTextBehaviors(false); } else { mOwner.ShowTextBehaviors(true); } } else { if (InstanceManager.Instance.InstanceInfo != null && InstanceManager.Instance.InstanceInfo.mWarSubType == GameConst.WAR_SUBTYPE_BATTLE_FIELD) { mOwner.ShowTextBehaviors(false); } else { mOwner.ShowTextBehaviors(visible); } } mOwner.GetBehavior <ShadowBehavior>().OnVisibleChange(mVisibleMode); if (mOwner.SkillEffectPlayer != null && ignore_effect == false) { mOwner.SkillEffectPlayer.ClearEffects(); mOwner.SkillEffectPlayer.IsEnable = visible; } if (mOwner.StateEffectPlayer != null && ignore_effect == false) { mOwner.StateEffectPlayer.ClearEffects(); mOwner.StateEffectPlayer.IsEnable = visible; } mOwner.OnBecomeVisible(visible); }
//you should never call this function except the cullmanager public void SetActorVisible(bool bVisible, VisiblePriority priority) { SetActorVisible(bVisible, false, false, priority); }