如何评价unity3d unityet5中多人游戏和网络模块UNet

  • 识别本地玩家对象我们需要对玩家对象进行区分,这里通过前面提到的IsLocalPlayer来区分本地玩家对象和非本地玩家对象——自己和对手不区分的话会导致两个玩家对象同时被操控。我用了红色来标记本地玩家对象方便辨认。
  • 冰球的创建(这个在后面会详细说这里简要提一下)。OnStartLocalPlayer是一个在本地玩家对象创建嘚时候会被调用的方法在这个方法里面我生成了唯一(看起来是一个,但是服务器在不同客户端各派生了一个)的冰球防止重复创建。
  • 摄像机角度的问题只要是对战游戏,就会涉及到用户角度的问题如何让两个玩家看起来都是自己控制的对象靠近自己这边。这个问題困扰了我很久由于摄像机不是玩家对象,没法像初始化玩家对象位置时用NetworkTransform来指定不同的初始位置最后,我想到了用两个摄像机分別预先留在场景中,预先调好针对两个玩家的角度然后在本地玩家创建时,将对方的摄像机灭活这样就保证了每个玩家端都只有一个攝像机,且都是自己的角度
  • 由摄像机角度问题带来的移动问题。因为调整针对不同玩家的摄像机的时候有个摄像机是翻转过来的,因此对于这个摄像机所活跃在的客户端对玩家的运动需要反过来控制,也即是对x和z取个反
    • UserGUI。获取同步变量的值并以一定的UI界面呈现

    完成前面的所有步骤后,便是创建客户端了实现客户端和服务端联机。

    • 编译后的独立程序将启动并显示分辨率选择对话框。
    • 选择 windowed 复選框和较低的分辨率(为保持良好的流畅性)如800x600。
    • 运行并连接(两个应用只要是一个当主机一个当客户机即可)。
    • 切换回编辑器点擊运行按钮进入运行模式。
  • 这时会发现就出现最开始的界面了接下来就是尽情地玩耍了。
  • 我要回帖

    更多关于 3d unity 的文章

     

    随机推荐