/// <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; } }
// ------------------------------------------------ // 接口的实现 // ------------------------------------------------ public override void InitBehaviors() { mOwner.SubscribeActorEvent(Actor.ActorEvent.AFTER_CREATE, OnAfterCreate); mOwner.SubscribeActorEvent(Actor.ActorEvent.DEAD, OnDead); if (ActorHelper.GetIsHideShadow(mOwner.TypeIdx) == true) { mShadowType = ShadowType.NONE; } else { if (mOwner.IsPlayer()) { mShadowType = ShadowType.REAL_SHADOW; } else { mShadowType = ShadowType.FAKE_SHADOW; } } }