public void RemoveUser(Session session) { Packet.MsgSvrCli_DestroyObject_Ntf ntf = new Packet.MsgSvrCli_DestroyObject_Ntf(); ntf.objectIds.Add(session.bar.id); ntf.objectIds.Add(session.ball.id); session.room = null; session.bar.transform.SetParent(null); session.ball.transform.SetParent(null); GameObject.Destroy(session.bar.gameObject); GameObject.Destroy(session.ball.gameObject); sessions.Remove(session); foreach (Session s in sessions) { s.Send(ntf); } if (0 == sessions.Count) { GameObject.Destroy(gameObject); } }
public void OnRecv_DestroyObject_Ntf(Packet.MsgSvrCli_DestroyObject_Ntf ntf) { StartCoroutine(PacketDelay((float)Network.NetworkDelay / 1000, () => { foreach (uint id in ntf.objectIds) { GameObject go = null; if (true == objects.TryGetValue(id, out go)) { GameObject.Destroy(go); objects.Remove(id); } } })); }