public void RunNetObjTick(string name, float repeatTime, MyAction <object[]> action, object[] param) { if (repeatTime <= 0) { return; } NetObjTick netObjTick = null; if (m_NetObjTicks.TryGetValue(name, out netObjTick)) { //Debug.Log("tick " + name + " already running!"); netObjTick.SetTickActionAndParam(action, param); return; } if (m_NetObjTickMangerObj == null) { m_NetObjTickMangerObj = new GameObject("NetObjTickManger"); GameObject.DontDestroyOnLoad(m_NetObjTickMangerObj); } netObjTick = m_NetObjTickMangerObj.AddComponent <NetObjTick>(); m_NetObjTicks.Add(name, netObjTick); netObjTick.RunTick(repeatTime, action, param); }
public void StopNetObjTick(string name) { NetObjTick netObjTick = null; if (!m_NetObjTicks.TryGetValue(name, out netObjTick)) { //Debug.Log("Did not have tick " + name); return; } m_NetObjTicks.Remove(name); if (netObjTick == null) { return; } netObjTick.StopAllCoroutines(); GameObject.Destroy(netObjTick); //GameObject.DestroyImmediate(netObjTick); }