Unity5.3.1f1 Network 局域网实时联网demo

本以为基于UNET的实时联网会很快地解决,显然UNET还是不成熟的。

这里记录一下跑一个局域网实时连网的小demo。

目前的项目需求是:局域网联网,实时互动。

于是干活的流程如下:

  1. 找到了Asserts Store上的一个例子,并且这个demo是免费的而且不断地在更新。Network Game Lobby(beta)
  2. OK,这里面有连接到作者自建的网站(解决了网络发现的问题),也有局域网内的直连,最后都开启了一个小的飞船游戏。界面是这个样子的
  3. 去掉我不需要的功能,然后我需要解决网络发现的问题,嗯参考一下CS,局域网内UDP广播,其他人接收,恩,把服务器列表放在这个界面中随时显示有哪个主机。于是界面就变成了这个样子
  4. 联网机制不变,还是用的上层的UNET联网功能,建主机,同意,全部同意后场景跳转加载游戏。修改一下挂在LobbyManager上的NetworkLobbyHook脚本,把想初始化的数据放进去,这里作者给我埋了个坑spaceship.name = lobby.name;我一直以为是把用户名传过去了,一直在找为啥没传过来呢?结果最后发现用户名是这个spaceship.playerName = lobby.playerName; 。。。。。
  5. 好了,现在要把游戏场景替换掉,把模型神马的都删了,加个场景进去,把飞船替换成人。
  6. 应该是我的这个人物的逻辑太乱了,本来就捆个CharactorController,然后又加了个第三人称控制脚本上去,结果我把人物加上NetworkTransform(同步位置)和NetworkAnimator(同步人物动画)各种无效和错误。
  7. NetworkIdentity据说是控制谁可控谁不可控,我还测试了一下,虽说很轻松就实现了这些所谓的功能,但是毕竟不是开源的,测测也好。
  8. 我经历了,替换人物Animation为Animator、去掉CharactorController自己实现位移和跳跃后还是不行,最后还是通过 syncvar变量自己实现了动画和位置角度同步。
  9. 估计这些bug会在后续的版本中修正吧。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值