Exemplo n.º 1
0
        //you should never call this function except the cullmanager
        public virtual void SetActorNameVisible()
        {
            if (mVisibleMode == EVisibleMode.Name)
            {
                return;
            }

            mVisibleMode = EVisibleMode.Name;
            mOwner.mAvatarCtrl.SetVisible(false);
            mOwner.SetNameText();
            if (InstanceManager.Instance.InstanceInfo != null && InstanceManager.Instance.InstanceInfo.mWarSubType == GameConst.WAR_SUBTYPE_BATTLE_FIELD)
            {
                mOwner.ShowTextBehaviors(false);
            }
            else
            {
                mOwner.ShowTextBehaviors(true);
            }

            mOwner.GetBehavior <ShadowBehavior>().OnVisibleChange(mVisibleMode);

            if (mOwner.SkillEffectPlayer != null)
            {
                mOwner.SkillEffectPlayer.ClearEffects();
                mOwner.SkillEffectPlayer.IsEnable = false;
            }

            if (mOwner.StateEffectPlayer != null)
            {
                mOwner.StateEffectPlayer.ClearEffects();
                mOwner.StateEffectPlayer.IsEnable = false;
            }

            mOwner.OnBecomeNameVisible();
        }
Exemplo n.º 2
0
 /// <summary>
 /// 当可见模式发生改变时
 /// </summary>
 /// <param name="visible_mode"></param>
 public void OnVisibleChange(EVisibleMode visible_mode)
 {
     if (visible_mode == EVisibleMode.Invisible)
     {
         ShadowType = ShadowType.NONE;
         RealShadow = false;
     }
     else if (visible_mode == EVisibleMode.Name)
     {
         if (ActorHelper.GetIsHideShadow(mOwner.TypeIdx) == true)
         {
             ShadowType = ShadowType.NONE;
         }
         else
         {
             ShadowType = ShadowType.FAKE_SHADOW;
         }
         RealShadow = false;
     }
     else if (visible_mode == EVisibleMode.Visible)
     {
         if (ActorHelper.GetIsHideShadow(mOwner.TypeIdx) == true)
         {
             ShadowType = ShadowType.NONE;
         }
         else
         {
             if (mOwner.IsPlayer())
             {
                 ShadowType = ShadowType.REAL_SHADOW;
                 // 此时的realshadow由cullmanger来设置
             }
             else
             {
                 ShadowType = ShadowType.FAKE_SHADOW;
                 RealShadow = false;
             }
         }
     }
     else
     {
         ShadowType = ShadowType.NONE;
         RealShadow = false;
     }
 }
Exemplo n.º 3
0
        /// <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);
        }