Пример #1
0
    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();
    }
Пример #2
0
    private ClientOnLineItem GetClientOnLineItem(System.UInt16 u3dId)
    {
        ClientOnLineItem item = null;

        m_clientOnLineItemDict.TryGetValue(u3dId, out item);
        return(item);
    }
Пример #3
0
    private void RemoveClientOnLineItem(System.UInt16 u3dId)
    {
        ClientOnLineItem item = null;

        if (m_clientOnLineItemDict.TryGetValue(u3dId, out item) && item != null)
        {
            m_clientOnLineItemDict.Remove(u3dId);
        }
    }
Пример #4
0
 private void AddClientOnLineItem(System.UInt16 u3dId, ClientOnLineItem item)
 {
     if (item == null)
     {
         return;
     }
     if (m_clientOnLineItemDict.ContainsKey(u3dId) == false)
     {
         m_clientOnLineItemDict.Add(u3dId, item);
     }
 }
Пример #5
0
    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();
    }