• unity5.1 Unet基础


          Unity5.1为开发者发布全新的多玩家在线工具、技术和服务。该技术的内部项目名称为 UNET,全称为 Unity Networking。我近期的工作便是研究并使用unet,将自己的研究结果在这里记录一下,如有纰漏,请大家多多指正。我主要记述的不是很具体的用法而是一些我遇到的问题,用法在网上也能查到很多。

      Unet针对不同用户的使用有高级和低级API两种--用Unity制作多玩家游戏的用户,这类用户应该从NetworkManager或者高级API开始。
    搭建网络架构或制作高级的多玩家游戏的用户,这类用户应该从网络传输层低级API开始。

      下面从高级API(HLAPI)开始介绍,使用高级API可以实现:

      - 通过Network Manager控制游戏的网络状态
      - 操作客户端主持的游戏,主持游戏的客户端同时也是一个玩家
      - 使用一个通用的序列化器序列化数据
      - 发送和接收网络消息
      - 从客户端向服务器发送网络命令
      - 在服务器上远程调用客户端提供的过程(RPC)
      - 从服务器向客户端发送网络事件

      关于Unet的介绍网上有很多,大家可以自行查找。

      首先,Unet提供了网络连接以及管理的组件:

      网络管理器(NetworkManager)可以作为控制多人游戏的核心组件。在场景中创建一个空的游戏对象或挑选一个方便管理器对象。从Network/NetworkManager菜单项里选择添加NetworkManager组件。新添加的NetworkManager应如图所示:


    在编辑器中的NetworkManager的的inspector 面板上,有允许您配置和控制与网络相关的很多东西。

      NetworkManagerHUD 是与NetworkManager相关的的另一个组件。游戏运行控制网络状态时,它给你一个简单的用户界面。用来调试或者实验都可以,但不能用作游戏最终的 ui 设计。NetworkManagerHUD 看起来像:


    真正的游戏用户需要自己设置正确的UI ,用于控制游戏状态和允许玩家选择什么样的游戏 。用户设置自己的UI时,脚本需要继承NetworkManager,使用里面的StartHost(),StartClient()来开启伺服器和客户端。并且可以重写方法来检测连接或者实现相应功能,eg:OnClientConnect,OnStartHost等。

      之后便可以使用一系列组件实现自己想要的功能了:

      

    unity自带的组件有上述这些,根据名字也可以大致推测出可以实现什么功能,下面简要介绍一下:

    --Animator:动画同步

    --Identity:网络标识组件(带有Identity的物体只有网络开启后才会显示出来)

    --LobbyManager:游戏大厅

    --LobbyPlayer:玩家控制

    --Manager:网络管理器

    --ManagerHUD:默认UI

    --StartPosition:游戏开始玩家所处的位置

    --Tranform:物体位移等的同步控制(挂载在需要同步物体的最小父物体上即可)

     这一章到这里,下一章我主要记述我所遇到的问题。

  • 相关阅读:
    前端线上项目汇总
    gulp构建工具学习汇总
    ES6知识点汇总
    页游技术点汇总中
    前后端方案汇总
    vim常用命令
    互联网哲学
    js调试技巧汇总中
    windows下Docker安装MySQL
    RabbitMQ几个常用面试题
  • 原文地址:https://www.cnblogs.com/xianunity/p/5643469.html
Copyright © 2020-2023  润新知