|
本帖最后由 slc766 于 2015-5-18 08:37 编辑
本人新手,做这个花了好久去思考逻辑,去查代码命令怎么用,中间也解决了很多BUG,最后成果在自己电脑里能够使用
服务器如下:
线下模式如下:
在线模式如下:
主要思路就是线下模式用NETWORK做的,而在线模式只是添加了积分和排名功能。
当我满心欢喜的发给好几个朋友后,只有1个人能正常使用,而其它人的电脑上就出问题了,首先是分辨率并不是我设置的那样,而是直接全屏,再就是在线模式一登陆就会把服务器弄崩溃,那我想着最少线下模式能用也行啊,结果他们进去以后发现是这样的:
下面是我部分代码,很简单的逻辑
void OnGUI()
{
//我的信息
GUI.Label(new Rect(10, Screen.height - 140, 100, 100), wotouxiang);
GUI.Label(new Rect(120, Screen.height - 140, 200, 20), myname, aa);
GUI.Label(new Rect(120, Screen.height - 120, 200, 20), "资产:" + money.ToString(), aa);
GUI.Label(new Rect(120, Screen.height - 100, 200, 20), "钻石:" + zuanshi.ToString(), aa);
if (paiming != "")
{
GUI.Label(new Rect(120, Screen.height - 80, 200, 20), "排名:" + paiming, aa);
}
switch (Network.peerType)
{
//网络断开时
case NetworkPeerType.Disconnected:
Startserver();
break;
//启动服务器后服务器动作
case NetworkPeerType.Server:
Onserver();
break;
//连接后客户端动作
case NetworkPeerType.Client:
Onserver();
break;
case NetworkPeerType.Connecting:
break;
}
}
//网络断开时
void Startserver()
{
gangkaishi = true;
if (gametype == "单机")
{
money = danjimoney;
//创建游戏
GUI.Label(new Rect(Screen.width / 2 - 120, Screen.height / 2 , 100, 40), "本机IP:\n" + myip.ToString());
if (GUI.Button(new Rect(Screen.width / 2, Screen.height / 2 , 100, 40), "创建游戏"))
{
NetworkConnectionError error = Network.InitializeServer(1, juyuwangport, false);
Debug.Log("连接状态" + error);
zhuji = true;
}
//加入游戏
Event e = Event.current;
shuruip = GUI.TextField(new Rect(Screen.width / 2 - 120, Screen.height / 2 + 50, 100, 30), shuruip);
if ((GUI.Button(new Rect(Screen.width / 2, Screen.height / 2 + 50, 100, 40), "加入游戏") || e.keyCode == KeyCode.Return)&&shuruip!="")
{
NetworkConnectionError error = Network.Connect(shuruip, juyuwangport);
Debug.Log("连接状态" + error);
zhuji = false;
}
//返回
if (GUI.Button(new Rect(Screen.width / 2, Screen.height / 2 + 50 + 50, 100, 40), "返回"))
{
Application.LoadLevel("start");
}
}
后面就是网络部分了,大致也就是和这个差不多,为什么OnGUI()里的能显示出来,但是Startserver()里的执行不了?有大神帮帮忙吗 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|