protected override void Update() { if (mnStage == 0) { return; } if (mnStage == 1) //榛戝睆aa { if (m_fTime <= float.Epsilon) { mnStage = 2; m_fTime = bornAnimTime; } else { if (m_fTime > enterTime) { mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); } else { mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f * m_fTime * m_fTime / enterTime / enterTime); } m_fTime -= Time.deltaTime; } } else if (mnStage == 2) //鎾?斁鍑虹敓鍔ㄤ綔aa { if (m_fTime < float.Epsilon) { if (bPlayShowAnimation && gameMonster != null)//boss鎾?斁灞曠ず鍔ㄧ敾aa { AnimationState aniState = gameMonster.AnimController[mbornAnimNext]; if (aniState != null) { aniState.wrapMode = WrapMode.Once; aniState.layer = 10; gameMonster.AnimController.CrossFade(mbornAnimNext, 0.15f); } if (mbornAudio != null && mbornAudio.Length > 0) { gameMonster.PlayAudio(mbornAudio); } bPlayShowAnimation = false; } m_fTime = stayTime; mnStage = 3; } else { m_fTime -= Time.deltaTime; } } else if (mnStage == 3) { if (m_fTime <= float.Epsilon) { //mBoss.transform.rotation = bossSaveRotate; //m_fTime = 1.25f*leaveTime; m_fTime = 0.0f; mnStage = 4; } else { m_fTime -= Time.deltaTime; } } else if (mnStage == 4)//榛戝睆娣″叆aa { if (m_fTime > afterStayTime) { mBoss.transform.rotation = bossSaveRotate; m_fTime = leaveTime; mnStage = 5; } else { m_fTime += Time.deltaTime; mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f * m_fTime * m_fTime / afterStayTime / afterStayTime); } } else if (mnStage == 5)//榛戝睆娣″嚭aa { if (m_fTime <= float.Epsilon) { if (bossDialogue != null) { bossDialogue.SetActive(false); } SetTargetEffectVisible(true); sdUICharacter.Instance.bBossMovie = false; GameObject fightUI = sdUICharacter.Instance.GetFightUi(); if (fightUI != null) { sdFightUi fight = fightUI.GetComponent <sdFightUi>(); if (fight != null) { fight.AddComboTime(System.DateTime.Now.Ticks / 10000000L - m_StartTime); } } mnStage = 0; } else { mask.color = new Color(0.0f, 0.0f, 0.0f, 1.0f * m_fTime * m_fTime / leaveTime / leaveTime); if (bReSetCamera) { bReSetCamera = false; mMainCamera.transform.position = cameraSavePos; mMainCamera.transform.rotation = cameraSaveRotate; HeaderProto.ECreatureActionState[] state = new HeaderProto.ECreatureActionState[2]; state[0] = HeaderProto.ECreatureActionState.CREATURE_ACTION_STATE_IDLE; state[1] = HeaderProto.ECreatureActionState.CREATURE_ACTION_STATE_LIMIT_SKILL; levelArea.SetMonsterStatus(state, false); sdActorInterface activePet = sdGameLevel.instance.mainChar.Retainer; for (int i = 0; i < state.Length; i++) { if (activePet != null) { activePet.RemoveDebuffState(state[i]); } sdGameLevel.instance.mainChar.RemoveDebuffState(state[i]); } sdGameLevel.instance.mainCamera.MainCharFollow = true; sdGameLevel.instance.SetFingerObjectActive(true); if (activePet != null && activePet.actorType == ActorType.AT_Pet) { ((sdGameMonster)activePet).ActiveHPUI(); } sdUICharacter.Instance.ShowFightUi(); } m_fTime -= Time.deltaTime; } } }