public void AddTickNode(ITickObject node) { if (!mTickItemList.Contains(node)) { mTickItemList.Add(node); } }
// Không thể gọi trong Constructor của tickobject. // Nếu chưa được Init thì active luôn là false. public static bool IsActive(ITickObject tickObject) { if (m_Map.ContainsKey(tickObject)) { return(m_Map[tickObject].Active && m_Map[tickObject].Initialized); } return(false); }
public static void Spawn(ITickObject tickObject) { Debug.Assert(m_Map.ContainsKey(tickObject) && !m_Map[tickObject].Started, "Invalid tick object."); if (m_Map[tickObject].Active) { m_Map[tickObject].Active = false; SetActive(tickObject, true); } }
public static void RemoveTickObject(ITickObject tickObject) { if (tickObject == null) { Log.Warning("Warning: Can not remove the null object from the tick object list"); return; } if (!_instance._tickObjects.Remove(tickObject)) { Log.Warning("Warning: Remove tick object error. May be the tick object is not in list."); } }
public static void RemoveTickObject(ITickObject tickObject) { if (tickObject == null) { Debug.LogError("Warning: Can not remove the null object from the tick object list"); return; } if (!_instance._tickObjects.Remove(tickObject)) { Debug.LogError("Warning: Remove tick object error. May be the tick object is not in list."); } }
public static void AddTickObject(ITickObject tickObject) { if (tickObject == null) { Log.Warning("Warning: Don't add the null object to tick object list"); return; } if (_instance._tickObjects.Exists(t => t == tickObject)) { Log.Warning("Warning: Don't add the same tick object twice."); return; } _instance._tickObjects.Add(tickObject); }
public static void AddTickObject(ITickObject tickObject) { if (tickObject == null) { Debug.LogError("Warning: Don't add the null object to tick object list"); return; } if (_instance._tickObjects.Exists(t => t == tickObject)) { Debug.LogError("Warning: Don't add the same tick object twice."); return; } _instance._tickObjects.Add(tickObject); }
public static ITickObject Create(string typeName) { Type type = Type.GetType(typeName); object obj = Activator.CreateInstance(type); ITickObject tickObject = obj as ITickObject; Debug.Assert(tickObject != null, "Cannot create tick object instance."); m_Map.Add(tickObject, new TickInfo()); tickObject.OnInit(); m_Map[tickObject].Initialized = true; return(tickObject); }
// Nếu tick object đã được initialize thì sẽ gọi các hàm Enable() và Disable(). // Không thể gọi trong Constructor của tick object. public static void SetActive(ITickObject tickObject, bool active) { Debug.Assert(m_Map.ContainsKey(tickObject), "Invalid tick object."); if (m_Map[tickObject].Initialized) { if (m_Map[tickObject].Active && !active) { m_Map[tickObject].Active = false; m_TickList.Remove(tickObject); m_ModifyTickListFlag = true; tickObject.OnDisable(); } else { if (!m_KillList.Contains(tickObject) && !m_Map[tickObject].Active && active) { m_Map[tickObject].Active = true; m_TickList.Add(tickObject, m_Map[tickObject]); m_ModifyTickListFlag = true; tickObject.OnEnable(); if (!m_Map[tickObject].Started) { if (m_Map[tickObject].Active) { m_Map[tickObject].Started = true; tickObject.OnStart(); } } } } } else { if (m_KillList.Contains(tickObject)) { m_Map[tickObject].Active = false; } else { m_Map[tickObject].Active = active; } } }
public void Remove(ITickObject tickObject) { mTickObjects.Remove(tickObject); }
public void Add(ITickObject tickObject) { mTickObjects.Add(tickObject); }
// Không thể Destroy tick object trong Constructor của nó. public static void Destroy(ITickObject tickObject) { Debug.Assert(m_Map.ContainsKey(tickObject), "Invalid tick object."); m_KillList.Add(tickObject); SetActive(tickObject, false); }
public void RemoveTickNode(ITickObject node) { mTickItemList.Remove(node); }