public T GetLogic <T>(Logic.AbsLogic logic) where T : Logic.AbsLogic { if (m_Logics.ContainsKey(logic.GetType().GetHashCode())) { return(m_Logics[logic.GetType().GetHashCode()] as T); } return(AddLogic <T>(logic) as T); }
public void RemoveLogic(Logic.AbsLogic logic) { if (m_Logics.ContainsKey(logic.GetType().GetHashCode())) { m_Logics[logic.GetType().GetHashCode()].OnDisable(); m_Logics[logic.GetType().GetHashCode()].OnDestroy(); m_Logics.Remove(logic.GetType().GetHashCode()); } }
public T AddLogic <T>(Logic.AbsLogic logic) where T : Logic.AbsLogic { m_Logics.Add(logic.GetType().GetHashCode(), logic); return(logic as T); }