unity3d实现玩家上线另一个玩家也能看见

      网络方面我喜欢写成C/S的形式,但是官方的例子是peer-to-peer形式的,把客服端和服务端写在一起,我在看候就遇到了很问题。下面看看代码吧,以C/S的形式写的,参考官方的例子改的。

    1. Server:服务端就是负责生成服务器,代码很简单和聊天室的一样。

    2.  Client:也很简单,也只是连接服务器,然后再加一个当连接服务器成功就实例化一个游戏对象的代码。再在客服端放入一个cube的prefab预制,再给cube预制加一个NetworkView,最后再给cube预制来段运动控制移动的代码就行了。

代买如下:

public var playerPrefab : Transform;

function OnConnectedToServer(){

	Spawnplayer();

}



function Spawnplayer(){	

	var myNewTrans : Transform = Network.Instantiate(playerPrefab, transform.position, transform.rotation, 0);

}



function OnPlayerDisconnected(player: NetworkPlayer) {

	Debug.Log("Clean up after player " + player);

	Network.RemoveRPCs(player);

	Network.DestroyPlayerObjects(player);

}



function OnDisconnectedFromServer(info : NetworkDisconnection) {

	Debug.Log("Clean up a bit after server quit");

	Network.RemoveRPCs(Network.player);

	Network.DestroyPlayerObjects(Network.player);

	Application.LoadLevel(Application.loadedLevel);

}

    

    3. 把服务器开着,后面打开两个客服端,在两个客服端里分别有两个物体(物体被重叠了,你在一个客服端移动一个物体就能看到了)

   4.我发现这些天出现很多错误都是出自于NetworkView是否同步,还有端口号的重复。如果遇到问题,大家可以从这两方面试试。还有就是,当客户端强制断开时,该客户端再次连接服务器时,场景中会比所有的客户端数多一个,所以大家最好不要强制断开,如果已经强制断开了,那好,你把端口号重新改一下。

   5.数据交互方面随着慢慢的研究我再写出来。大家一起进步哈~~~~QQ:397319689(有点笨)~~~




   

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值