private void U3DClientOnLine_Callback(INotification notification) { //数据解析 object[] objs = notification.Body as object[]; U3DClientLogin u3dClientLogin = (U3DClientLogin)objs[0]; System.Net.IPEndPoint endPoint = (System.Net.IPEndPoint)objs[1]; string content = u3dClientLogin.m_clientId + " " + u3dClientLogin.m_clientName + " (" + endPoint.Address.ToString() + " " + endPoint.Port.ToString() + ")"; //UI处理 GameObject clientOnLineItemGo = SingletonMgr.ObjectManager.Instantiate("Assets/Prefabs/UI/ClientOnLineItem.prefab", false); if (clientOnLineItemGo != null && m_clientOnLineItemContentTrans != null) { clientOnLineItemGo.transform.SetParent(m_clientOnLineItemContentTrans); clientOnLineItemGo.transform.localPosition = Vector3.zero; clientOnLineItemGo.transform.localScale = Vector3.one; clientOnLineItemGo.transform.localEulerAngles = Vector3.zero; ClientOnLineItem itemCom = clientOnLineItemGo.GetComponent <ClientOnLineItem>(); if (itemCom != null) { itemCom.SetCell(content); AddClientOnLineItem(u3dClientLogin.m_clientId, itemCom); } } m_onlineCountText.text = ActorManager.Instance.GetActor <WorldActor>().OnLineCount.ToString(); m_linkSocketCountText.text = ActorManager.Instance.GetActor <WorldActor>().LinkSocketCount.ToString(); }
private ClientOnLineItem GetClientOnLineItem(System.UInt16 u3dId) { ClientOnLineItem item = null; m_clientOnLineItemDict.TryGetValue(u3dId, out item); return(item); }
private void RemoveClientOnLineItem(System.UInt16 u3dId) { ClientOnLineItem item = null; if (m_clientOnLineItemDict.TryGetValue(u3dId, out item) && item != null) { m_clientOnLineItemDict.Remove(u3dId); } }
private void AddClientOnLineItem(System.UInt16 u3dId, ClientOnLineItem item) { if (item == null) { return; } if (m_clientOnLineItemDict.ContainsKey(u3dId) == false) { m_clientOnLineItemDict.Add(u3dId, item); } }
private void U3DClientOffLine_Callback(INotification notification) { System.UInt16 u3dId = (System.UInt16)notification.Body; ClientOnLineItem item = GetClientOnLineItem(u3dId); if (item != null) { SingletonMgr.ObjectManager.ReleaseGameObjectItem(item.gameObject); //回收 RemoveClientOnLineItem(u3dId); } m_onlineCountText.text = ActorManager.Instance.GetActor <WorldActor>().OnLineCount.ToString(); m_linkSocketCountText.text = ActorManager.Instance.GetActor <WorldActor>().LinkSocketCount.ToString(); }