/// <summary> /// 更新 /// </summary> protected override void Update() { SpacecraftEntity main = GetMainEntity(); if (main == null) { return; } //当前状态 bool isBattle = IsBattling(); bool isBurstReady = main.GetBurstReady(); bool isBurstActivated = IsPeerless(); //能量属性 float peerless = (float)main.GetAttribute(AttributeName.kConverterValue); float peerlessMax = (float)main.GetAttribute(AttributeName.kConverterMax); //能量条 m_PowerSlider.gameObject.SetActive(true); if (peerlessMax > 0 && peerless > 0) { m_PowerSlider.fillAmount = Mathf.Lerp(m_PowerSlider.fillAmount, peerless / peerlessMax, Time.deltaTime * 2); } else { m_PowerSlider.fillAmount = Mathf.Lerp(m_PowerSlider.fillAmount, 0, Time.deltaTime * 2); } //倒计时 //m_CountdownBox.gameObject.SetActive(isBurstActivated); //if(isBurstActivated) //{ //peerless //double consume = main.GetAttribute(AttributeName.kConverterCostEfficiency); //Debug.LogError(consume); //} //热键显示 //m_HotkeyBox.gameObject.SetActive(isBattle); m_Hotkey2.gameObject.SetActive(isBurstReady && !isBurstActivated); m_Hotkey1.gameObject.SetActive(Mathf.Approximately(peerless, peerlessMax) && !isBurstReady && !isBurstActivated); //状态动画 if (isBattle != m_BattleState) { m_BattleState = isBattle; m_StateAnimator.ResetTrigger("Cruise"); m_StateAnimator.ResetTrigger("Battle"); m_StateAnimator.SetTrigger(isBattle ? "Battle" : "Cruise"); } //特效动画 string newState = "Normal"; if (isBattle) { if (peerless >= peerlessMax && peerlessMax > 0) { newState = isBurstReady ? "Hold" : "Already"; } if (isBurstActivated) { newState = "Release"; } } if (!newState.Equals(m_EffectState)) { m_EffectState = newState; m_EffectAnimator.ResetTrigger("Normal"); m_EffectAnimator.ResetTrigger("Already"); m_EffectAnimator.ResetTrigger("Hold"); m_EffectAnimator.ResetTrigger("Release"); m_EffectAnimator.SetTrigger(newState); } }