// 离开状态 public void OnLeave() { if (!m_pFSM) { return; } Trace.Log(m_pFSM.name + "=======OnLeave CreaturePosture_Dead======"); //死亡动作在攻击层调用,这里结束掉死亡动作 m_pFSM.BreakAttackAnim(); SkillCtrl sk = m_pFSM.GetComponent <SkillCtrl>(); if (sk) { sk.enabled = true; } if (m_pFSM.isHero) //复活时切回主角镜头 { SoldierCamera.MainInstance <SoldierCamera>().EnableMode(CameraMode.DeadControl, false); } SoldierController sco = m_pFSM.GetComponent <SoldierController>(); if (sco) { sco.dead = false; sco.desireAngle = m_pFSM.transform.localEulerAngles; //sco.bindSoldierCamera.Reset(); 2016-09-22,策划需求,复活后摄像机位置保持原来跟角色的位置,不重置,改为仅取消effect CameraEffectUtil.MainInstance.stopEffect(); } if (m_pFSM.isHero) { //ImageEffects.ImageEffectManager.API_DisableImageEffect<ImageEffects.FullScreenGray>(); LightingEffectFactory.DisableDeadEffect(); ImageEffects.ImageEffectManager.API_DisableImageEffect <ImageEffects.FullScreenSaturation>(); ImageEffects.ImageEffectManager.API_EnableImageEffect <ImageEffects.DepthOfFieldScatter>(); } //恢复死亡不碰撞 if (m_pFSM.controller) { m_pFSM.pickableCount++; //if (true==m_pFSM.GetVisible()) //{ // m_pFSM.gameObject.layer = m_pFSM.baseLayer; //} } ////实体复活不是重新发下来的,在这里改回原来的层 //if (!m_pFSM.isHero) //{ // GameUtil.SetLayer(nOldLayer, m_pFSM.gameObject, true); // //m_pFSM.gameObject.layer = nOldLayer; // //if (m_pFSM.SkinConfig.ScreenCastObject != null) // //{ // // m_pFSM.SkinConfig.ScreenCastObject.layer = nOldLayer; // //} //} if (m_pFSM.animator) { Trace.Log("SetTrigger(Reborn)"); m_pFSM.animator.SetTrigger("Reborn"); m_pFSM.animator.ResetTrigger("Dead"); m_pFSM.animator.speed = 1; } //GfxBloodManager.OnEntityRelive(m_pFSM.entityID, ENTITY_TYPE.TYPE_PLAYER_ROLE); USpeedUI.Blood.UBloodManager.Instance.OnEntityRelive(m_pFSM.entityID, ENTITY_TYPE.TYPE_PLAYER_ROLE); //TopNameManager.OnEntityRelive(m_pFSM.entityID, ENTITY_TYPE.TYPE_PLAYER_ROLE); //某些特效,在模型死亡时,会将模型隐藏起来,复活的时候设置为可见 m_pFSM.SetVisible(m_pFSM.m_OnViewVisible); // // 小地图显示 // U3D_Render.EntityView objev = EntityFactory.getEntityViewByID(m_pFSM.entityID); // if (objev != null) // { // GFxMinimapManager.Instance.SetObjectVisible(m_pFSM.entityID, objev.createinfo.nMinimapIcon, 1); // } U3D_Render.EntityView objev = EntityFactory.getPlayerViewByID(m_pFSM.entityID); if (objev != null && objev.gameObject != null && objev.Property != null) { int nHeroID = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_VOCATION); SoundPlayHandler.PlayHeroRandomSound(nHeroID, m_pFSM.entityID, objev.gameObject, ASpeedGame.Data.Scheme.EMHeroSoundType.EHeroSound_Relive); } }