//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, May 03, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using vnxbqy.UI;
|
|
public class HeroNearDeathBehaviour
|
{
|
|
public static void Init()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh;
|
}
|
|
public static void UnInit()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh;
|
}
|
|
private static void OnPlayerDataRefresh(PlayerDataType _refreshType)
|
{
|
switch (_refreshType)
|
{
|
case PlayerDataType.HP:
|
case PlayerDataType.MaxHP:
|
var percent = PlayerDatas.Instance.extersion.MaxHP <= 0 ? 1 : PlayerDatas.Instance.baseData.HP / (float)PlayerDatas.Instance.extersion.MaxHP;
|
if (percent <= GeneralDefine.lowHpRemind * 0.01f)
|
{
|
if (!WindowCenter.Instance.IsOpen("NearDeathWin"))
|
{
|
WindowCenter.Instance.Open<NearDeathWin>(true);
|
}
|
}
|
break;
|
}
|
}
|
|
}
|
|
namespace vnxbqy.UI
|
{
|
|
public class NearDeathWin : Window
|
{
|
[SerializeField] Image m_Effect;
|
[SerializeField] AudioSource m_AudioSource;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
m_AudioSource.enabled = false;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
UpdateSoundAndEffect();
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
|
UpdateSoundAndEffect();
|
}
|
|
private void UpdateSoundAndEffect()
|
{
|
var percent = PlayerDatas.Instance.extersion.MaxHP <= 0 ? 1 : PlayerDatas.Instance.baseData.HP / (float)PlayerDatas.Instance.extersion.MaxHP;
|
m_AudioSource.enabled = m_Effect.enabled = PlayerDatas.Instance.baseData.HP > 0 && percent <= GeneralDefine.lowHpRemind * 0.01f;
|
m_AudioSource.volume = SystemSetting.Instance.GetSoundEffect();
|
|
if (!m_Effect.enabled)
|
CloseClick();
|
}
|
|
}
|
|
}
|
|
|
|
|