目录为:Assets/Scripts/GameEntity/目录下
FriendManager.cs
好友管理类
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
//好友管理类
public class FriendManager
{
//static
private static FriendManager instance = null;
public static FriendManager Instance
{
get
{
if (instance == null)
{
instance = new FriendManager ();
}
return instance;
}
}
FriendManager()
{
}
//所有好友
public Dictionary<UInt64, Friend> AllFriends = new Dictionary<UInt64, Friend> ();
//黑名单
public Dictionary<UInt64, Friend> AllBlackDic = new Dictionary<UInt64, Friend> ();
//查询玩家列表
public Dictionary<string, string> AllSearch = new Dictionary<string, string> ();
public Dictionary<GameObject, Friend> OnClickKey = new Dictionary<GameObject, Friend> ();
public Dictionary<UInt64, IChat> AllTalkDic = new Dictionary<UInt64, IChat> ();
//OnClickKey-----------------------------------------------
public void AddOnClickKey(GameObject obj, Friend temp)
{
if (OnClickKey.ContainsKey(obj))
{
return;
}
OnClickKey.Add(obj, temp);
}
public void RemoveOnClickKey(GameObject obj)
{
if (OnClickKey.ContainsKey(obj))
{
OnClickKey [obj] = null;
OnClickKey.Remove (obj);
}
}
public GameObject GetObj(UInt64 sGUID)
{
foreach (var item in OnClickKey)
{
//存储的Friend的sguid
if (sGUID != 0 && item.Value.SGUID == sGUID)
{
return item.Key;
}
}
return null;
}
//-----------------------------------------------------------
//查询玩家列表
public void AddSearchDic(string name, string headid)
{
if (AllSearch.ContainsKey(name))
{
return;
}
AllSearch.Add (name, headid);
}
//山吹当前玩家的查询
public void RemoveSearchDic(string name)
{
if (AllSearch.ContainsKey(name))
{
AllSearch [name] = null;
AllSearch.Remove (name);
}
}
//添加黑名单
public void AddOnLineBlackList(UInt64 sGUID, Friend friend)
{
if (AllBlackDic.ContainsKey(sGUID))
{
return;
}
AllBlackDic.Add (sGUID, friend);
}
//删除当前黑名单
public void DelBlackList(UInt64 sGUID)
{
if (AllBlackDic.ContainsKey(sGUID))
{
AllBlackDic [sGUID] = null;
AllBlackDic.Remove (sGUID);
}
}
//清空数据
public void DelAllList()
{
AllBlackDic.Clear ();
AllFriends.Clear ();
AllTalkDic.Clear ();
}
//添加好友
public void AddFriend(UInt64 sGUID, Friend friend)
{
if (AllFriends.ContainsKey(sGUID))
{
return;
}
AllFriends.Add (sGUID, friend);
}
//删除在线好友
public void DelFriend(UInt64 sGUID)
{
if (AllFriends.ContainsKey(sGUID))
{
AllFriends [sGUID] = null;
AllFriends.Remove (sGUID);
}
}
public void DelAllTalkDic(UInt64 sGUID)
{
if (AllTalkDic.ContainsKey(sGUID))
{
AllTalkDic [sGUID] = null;
AllTalkDic.Remove (sGUID);
}
}
//房间邀请
public class RoomInviteList
{
public int headID;
public string nickName;
}
public Dictionary<UInt64, RoomInviteList> RoomInvite = new Dictionary<UInt64, RoomInviteList> ();
public void AddInvite(UInt64 sGUID, int headId, string nickName)
{
RoomInviteList room = null;
//不包含
if (!RoomInvite.ContainsKey(sGUID))
{
room = new RoomInviteList ();
room.headID = headId;
room.nickName = nickName;
RoomInvite.Add (sGUID, room);
return;
}
//包含的话就直接设置
room.headID = headId;
room.nickName = nickName;
RoomInvite [sGUID] = room;
}
public void Remove(UInt64 sGUID)
{
if (RoomInvite.ContainsKey(sGUID))
{
RoomInvite.Remove (sGUID);
}
}
}