using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Net; /// /// 表示游戏设置。 /// public static class GameSetting { /// /// 表示登录服务器的设置。 /// public static readonly LoginSetting LoginSetting = new LoginSetting(); } /// /// 表示登录服务器的设置。 /// public class LoginSetting { private List> list = new List>(); /// /// 随机获取一个登录服务器地址。 /// public bool GetLoginAddress(out string ip, out int port) { var index = Random.Range(0, list.Count); ip = list[index].Key; port = list[index].Value; return true; } /// /// 随机获取一个登录服务器地址。 /// public IPEndPoint GetLoginAddress() { string ip; int port; GetLoginAddress(out ip, out port); return new IPEndPoint(IPAddress.Parse(ip), port); } /// /// 设置登录服务器地址。 /// /// /// public void SetLoginAddress(string ip, int port) { list.Add(new KeyValuePair(ip, port)); } /// /// 表示指定的地址是否包含在登录服务器设置中,即该地址是否是登录服务器地址。 /// public bool Contains(IPEndPoint endpoint) { return Contains(endpoint.Address.ToString(), (int)endpoint.Port); } /// /// 表示指定的地址是否包含在登录服务器设置中,即该地址是否是登录服务器地址。 /// public bool Contains(string ip, int port) { return list.Exists((pair) => ip == pair.Key && port == pair.Value); } }