一共有3个模式可以选择人机模式,双人模式,联网模式。

人机模式 分为简单AI 普通AI 和困难AI三种, 困难AI是用MiniMax算法和Alpha-Beta剪枝算法做的

https://blog.csdn.net/qq2512667/article/details/84478944

 

 

联网匹配模式  联网是用Unity自带的UnityNetWorking 做的。UNet。NetWorkManager里有Singleton保存的Manager的单例,里面有很多方法可以被封装调用。

StartHost();

StartClient();

SceneManager 里有个SceneLoaded的委托 在场景加载会会调用这个委托里的方法;

https://docs.unity3d.com/Manual/30_search.html?q=CreateMatch

匹配系统 用Singleton 里的MatchMaker来制作。 有CreateMatch方法

 

 

属性

autoCreatePlayer 用于控制是否在连接和场景更改时自动创建播放器对象的标志。
channels 用于网络传输层的服务质量信道。
client 管理器正在使用的当前NetworkClient。
clientLoadedScene 如果客户端在连接到服务器时加载了新场景,则会出现这种情况。
connectionConfig 要使用的自定义网络配置。
customConfig 标记以启用自定义网络配置。
dontDestroyOnLoad 用于控制在场景更改时是否销毁NetworkManager对象的标志。
globalConfig 要使用的传输层全局配置。
isNetworkActive 如果NetworkServer或NetworkClient处于活动状态,则为True。
LOGLEVEL 日志级别专门针对用户的网络日志消息。
matches 可以加入的匹配列表。
matchHost 配对服务器的主机名。
matchInfo 调用StartServer()或StartClient()时将使用的MatchInfo实例。
matchMaker UMatch MatchMaker对象。
matchName 当前匹配的名称。
matchPort 配对服务的港口。
matchSize 当前比赛中的最大玩家数量。
MAXCONNECTIONS 要支持的最大并发网络连接数。
MAXDELAY 连接上发送数据包之前的最大延迟。
migrationManager 迁移管理器与NetworkManager一起使用。
networkAddress 当前使用的网络地址。
networkPort 当前正在使用的网络端口。
numPlayers NumPlayers是服务器上所有连接的活动播放器对象数。
offlineScene 离线时切换到的场景。
onlineScene 在线时切换到的场景。
packetLossPercentage 要为客户端删除的传入和传出数据包的百分比。
playerPrefab 用于在服务器上创建播放器对象的默认预制件。
playerSpawnMethod 产生NetworkManager使用的播放器的当前方法。
runInBackground 控制程序在后台运行时是否运行。
scriptCRCCheck 用于在服务器和客户端之间使用脚本CRC检查的标志。
secureTunnelEndpoint 允许您指定EndPoint对象,而不是设置networkAddress和networkPort(某些平台(如Xbox One)需要)。
serverBindAddress 绑定服务器的IP地址。
serverBindToIP 标志告诉服务器是否绑定到特定的IP地址。
simulatedLatency 为客户端添加到传入和传出数据包的延迟(以毫秒为单位)。
spawnPrefabs 将在产卵系统中注册的预制件清单。
startPositions 当前场景的当前注册的玩家开始位置列表。
useSimulator 控制是否由此NetworkManager启动客户端的标志将使用模拟延迟和数据包丢失。
useWebSockets 这使得NetworkServer侦听WebSockets连接而不是正常的传输层连接。

公共方法

GetStartPosition 这将根据场景中的NetworkStartPosition对象找到生成位置。
IsClientConnected 这将检查NetworkManager是否具有客户端以及它是否已连接到服务器。
OnClientConnect 连接到服务器时在客户端上调用。
OnClientDisconnect 在与服务器断开连接时调用客户端。
OnClientError 发生网络错误时在客户端上调用。
OnClientNotReady 当服务器告诉客户端它已不再准备好时,在客户端上调用。
OnClientSceneChanged 当场景加载完成时,在服务器启动场景加载时在客户端上调用。
OnDestroyMatch 在服务器上处理NetworkMatch.DestroyMatch请求时发生的回调。
OnDropConnection 在服务器上处理NetworkMatch.DropConnection匹配请求时发生的回调。
OnMatchCreate 在服务器上处理NetworkMatch.CreateMatch请求时发生的回调。
OnMatchJoined 在服务器上处理NetworkMatch.JoinMatch请求时发生的回调。
OnMatchList 在服务器上处理NetworkMatch.ListMatches请求时发生的回调。
OnServerAddPlayer 当客户端使用ClientScene.AddPlayer添加新播放器时,在服务器上调用。
OnServerConnect 在新客户端连接时在服务器上调用。
OnServerDisconnect 客户端断开连接时在服务器上调用。
OnServerError 当客户端连接发生网络错误时,在服务器上调用。
OnServerReady 客户端准备就绪时在服务器上调用。
OnServerRemovePlayer 客户端删除播放器时在服务器上调用。
OnServerSceneChanged 当服务器使用ServerChangeScene()启动场景加载时,在加载场景时在服务器上调用。
OnSetMatchAttributes 在服务器上处理NetworkMatch.SetMatchAttributes时发生的回调。
OnStartClient 这是在启动客户端时调用的挂钩。
OnStartHost 启动主机时会调用此挂接。
OnStartServer 启动服务器时调用此挂接 – 包括启动主机时。
OnStopClient 客户端停止时会调用此挂接。
OnStopHost 当主机停止时,将调用此挂接。
OnStopServer 服务器停止时调用此挂钩 – 包括主机停止时。
ServerChangeScene 这会导致服务器切换场景并设置networkSceneName。
SetMatchHost 这将设置MatchMaker服务的地址。
SetupMigrationManager 这将设置NetworkMigrationManager对象以使用此NetworkManager。
StartClient 这启动了一个网络客户端。它使用networkAddress和networkPort属性作为要连接的地址。
StartHost 这将启动网络“主机” – 同一应用程序中的服务器和客户端。
StartMatchMaker 这将启动NetworkManager的MatchMaker。
startserver的 这将启动一个新服务器。
StopClient 停止经理正在使用的客户端。
StopHost 这会停止管理器正在使用的客户端和服务器。
StopMatchMaker 停止NetworkManager正在使用的MatchMaker。
StopServer 停止管理器正在使用的服务器。
UseExternalClient 这允许NetworkManager使用在NetworkManager外部创建的客户端对象,而不是使用StartClient()。
上面就是NetWorkManager的API
public Coroutine CreateMatch(string matchName,uint matchSize,bool matchAdvertise,string matchPassword,string publicClientAddress,string privateClientAddress,int eloScoreForMatch,int requestDomain,DataResponseDelegate <MatchInfo> callback);

参数

matchName 描述此匹配名称的文本字符串。
matchSize 创建匹配项时,匹配器将使用此值或您在https://multiplayer.unity3d.com上在线配置的最大大小,以较低者为准。这样,您可以为特定游戏指定不同的匹配大小,但仍然可以在在线控制面板中保持总体大小限制。
matchAdvertise 指示此匹配是否应在NetworkMatch.ListMatches结果中可用的bool 。
matchPassword 一个文本字符串,指示此匹配是否受密码保护。如果是,则尝试加入此匹配的所有客户端都必须提供正确的匹配密码。
publicClientAddress 可选的公共客户端地址。此值存储在匹配器上,并提供给列出匹配项的客户端。它旨在成为直接通过Internet连接到此客户端的网络地址。仅当已知公共可用地址且匹配器支持直接连接时,才会显示此值。
privateClientAddress 可选的私人客户端地址。此值存储在匹配器上,并提供给列出匹配项的客户端。它旨在成为直接在局域网上连接到此客户端的网络地址。仅当匹配器支持直接连接时,才会显示此值。这可能是一个空字符串,它不会影响与matchmaker接口或使用中继服务器的能力。
eloScoreForMatch 托管正在创建的比赛的客户的Elo分数。如果在所有客户端上设置此数字以指示相对技能级别,则此数字用于返回由给定列表玩家的技能级别最适合玩的那些排序的匹配。在所有客户端上,这可能为0,这将禁用MatchMaker中的任何Elo计算。
requestDomain 此请求的请求域。只有同一域中的请求才能相互连接。例如,如果使用域1 创建NetworkMatch.CreateMatch,则只有同时指定域1的ListMatches才会找到该匹配项。使用此值来填充不同(可能不兼容)的客户端版本。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

跳至工具栏