vampire-like/Assets/GameMain/Scripts/Entity/EntityLogic/Effect.cs

59 lines
1.5 KiB
C#

//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/
// Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------
using Entity;
using Entity.EntityData;
using UnityEngine;
using UnityGameFramework.Runtime;
namespace Entity
{
/// <summary>
/// 特效类。
/// </summary>
public class Effect : EntityBase
{
[SerializeField]
private EffectData m_EffectData = null;
private float m_ElapseSeconds = 0f;
#if UNITY_2017_3_OR_NEWER
protected override void OnShow(object userData)
#else
protected internal override void OnShow(object userData)
#endif
{
base.OnShow(userData);
m_EffectData = userData as EffectData;
if (m_EffectData == null)
{
Log.Error("Effect data is invalid.");
return;
}
m_ElapseSeconds = 0f;
}
#if UNITY_2017_3_OR_NEWER
protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
#else
protected internal override void OnUpdate(float elapseSeconds, float realElapseSeconds)
#endif
{
base.OnUpdate(elapseSeconds, realElapseSeconds);
m_ElapseSeconds += elapseSeconds;
if (m_ElapseSeconds >= m_EffectData.KeepTime)
{
GameEntry.Entity.HideEntity(this);
}
}
}
}