纳金网

标题: Unity3D脚本中文教程2.34 [打印本页]

作者: 奔跑的小兔    时间: 2012-5-25 15:40
标题: Unity3D脚本中文教程2.34
Masterserver


主服务器用来使服务器和客服端匹配。

你可以建立以个游戏主机或为你的游戏类型取回主机列表。这里的这个函数用来与主服务器通信,主服务器位于不同的服务器上,如果必要这个服务器可以被定制,主服务器的概览和技术描述:参见master server manual page

类变量

◆  static var dedicatedserver:bool

描述:申明这台机器为专用服务器。

如果作为一个服务器运行,连接数定义了玩家的数量,当在主服务器上注册的时候这个被报告,默认情况下主服务器假定这个实例不是专用服务器,因此玩家数会增加1(占用服务器上的一个“chent”)如果不希望,这个变量可以设置为假,然后知有连接数被报告为玩家数。

function startserver{}{

nerwork lnitializeserver(32.25002):

masrerserver.dedicatedserver=***e;

masterserver.registerhost("myuniquegametype","johndoes game","133tgame for all");

}

◆static var ip address:string

描述:主服务器的IP地址。

默认地这个是由unity技术运行的服务器。

function

masterserver ip address="127.0.0.1";

master server.port=10002;

}

◆static var port:int

描述:主服务器的链接端口。

默认地这个是由unity技术云顶的服务器,

masterserver.ipaddress="127.0.0.1";

master server.port=100021;

}

◆static var updaterate:int

描述:为主服务器主机信息更新设置最小更新速率。

通常,主机更新只在主机信息被改变的时候发生(如连接的玩家)。更新率定义了主机更新之间的最小时间量,缺省值为60秒(检查更新)因此,如果以个主机更新呗发送然后一些域在10秒后改变,然后更新可能会在50秒之后发送(在下一次检查到改变的时候)。如果这个被设置为0,以后就没有更新被发送,只发送初始注册信息。

function startserver()

{

network lnitialigeserver(32.25002);

//在初始化注册之后没有主机信息更新

Masterserver.updaterate=0;

masterserver,registerhost("myuniquegametype","johndoes game","133tgame forall");

}

类方法

◆static function clearhostlist():void

描述:清楚由masterserver.pollhostlist接收到的主机列表。

如果你想更新列表并想确保你不使用较旧的数据时,使用这个,

function awakc()

{

//确保类表是空的并请求一个新的列表

masterserver clearhostlist();

masterserver.requesthostlist("myuniquegametype");

}

function lpdate()

{

//如果任何主机被接收,显示游戏名称,再次清理主机列表,}

if(masterserver.pollhostlist(),length!=0){

var hostdata;hostdata[]=masterserver.pollhostlist();

for(var i:int=0;i<hostdata.length;i++){

    debug,log("game name:"+hostdatagamename);

}

masterserver,clearhostlist()

}

}

◆static function pollhostlist():hostdata[]

描述:使用master server.requeshostlist接收最新的主机列表

使用masterserver.clearhostlist清理当前主机列表。这样你可以确定返回的列表时最新的。

  function awaket(){

//确保列表时空的并请求一个新的列表

masterserver .clearhostlist();

masterserver.requesrhostlist("l***stest"):

;

function update()

;

//如果任何主机被接收,显示游戏名称,再次清理主机列表;

if(masterserver.pollhostlist()length!=0){

varhostdata hostdata[]=masterserver.pollhostlist();

for(var i:int=0;i<hostdata.length;i++){

debug.log("game name"+hostdata.gamename);

}

masterserver.clearhostlist()

}

◆static function registerhost(gametypename:string,gamename:string.comment:string=""):void

描述:在主服务器注册这个服务器。

如果主服务器地址信息尚未改变,缺省的主服务器将被使用。

function ongui()

{

if(guilayout.button("stnrt server")){

//如果没有公有IP地址,使用NAT穿透

network。usenat=!network.havepublicaddrss();

network.lnitializeserver(32.25002);

masterserver.registerhost("myuniquegametype","johndoes game","133tgame for all");

}

}

◆static function RequestHosList(gameTypeName:string):void

描述:从主服务器请求一个主机列表。

当它完成的时候,这个列表可以通过MasterServer.PollHcstList使用。

function Awakc(){

//确保列表时空的并请求一个新的列表

MastcrScrver.RequestHostList();

MastcrScrver.RequestHostList("L***sTcst");

}

function Update()

}

//如果任何主机被接收,显示游戏名称,再次清理主机列表。

if(MastcrScrvcr.PollHcstLisx().length!=0)}

var hostData:HostData[]=MasterSer.pollHostList();

for (var i:int=();i<hostData.length;i++){

Debug.Log("Game namc;"+hostData.gamceName);

}

MastcrScrvcr.ClearHostList();

}

}

static function UnregisterHost():void

描述:从主服务器注销这个服务器。

如果服务器没有被注销或已经被注销,不做任何事。

function OnGUt() {

if(GUILayout.Button("Disconnect")){

Nctwork,Disconnect();

NastcrServer.UnregisterHost();

}


作者: .    时间: 2012-12-28 20:12
谢谢楼主的用心分享,顶一个~~!!




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5