NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/GameWrapper/UINode/UIActivityNode.cs

61 lines
1.3 KiB
C#

using Framework;
using UnityEngine;
public class UIActivityNode : UINode
{
[SerializeField]
private int _activityID;
public int activityID
{
get { return _activityID; }
set
{
_activityID = value;
logic?.FakeAwake(); // Re-bind or refresh
}
}
private IActivityEntranceNode _logic;
public IActivityEntranceNode logic
{
get
{
return _logic;
}
set
{
_logic = value;
_logic?.FakeAwake();
}
}
void OnActivityIDChanged()
{
logic?.FakeAwake();
}
private void Awake()
{
// 发送事件,通知逻辑层创建和绑定逻辑实例
EventManager.Instance.Send(EventManager.EventName.ActivityNodeCreated, this);
}
private void OnEnable()
{
var start_time = logic?.GetActivityGroupOpenTime(activityID);
var end_time = logic?.GetActivityGroupCloseTime(activityID);
if (start_time.HasValue && end_time.HasValue)
{
var curTime = logic.GetCurTime();
bool is_active = curTime >= start_time.Value && curTime <= end_time.Value;
gameObject.IsScaleShow(is_active);
}
}
private void OnDestroy()
{
logic?.FakeOnDestroy();
}
}