• Unity5.1 新的网络引擎UNET(八) UNET 系统概括


    

    孙广东   2015.7.12


    Server and Host

    在Unity 的 网络系统,游戏有 一个server和多个client。

    当没有专用的server时,client之中的一个扮演server的角色 — — 我们称之为此client“host”


    host (主机)是一个server和 client在同一进程中。

    主机 将使用一种特殊的client被称为 LocalClient。而其它client是 RemoteClients。LocalClient 与(本地) server通信 通过直接的函数调用和消息队列,由于它是同一进程中。它实际上与server共享一个 场景。RemoteClients 通过定期的网络连接与server进行通信。

    网络系统的目标是 LocalClients 和 RemoteClients 的代码是同样的,所以开发人员仅仅需大部分时间想一种类型的client的。


    Instantiate and Spawn

    在Unity中,GameObject.Instantiate 创建新的Unity游戏对象。但与联网系统在一起, 对象必须也会“spawned” 要在网络上激活。这仅仅能在server上,而且导致要在连接的client上创建对象。一旦对象被Spawning System生成,分布式的对象生命周期管理和状态同步。

    Players, Local Players and Authority


    在网络系统中。玩家对象都是特殊的。

    还有伴玩游戏,每一个人的player 对象和 命令 都将路由 到该对象。一个人不能对还有一个人的player对象调用命令 - 仅仅有他们自己。所以是的“my” player 对象的概念。

    当加入一个player 和联系 把他们连接时。这个player对象就成为该玩家client上的“local player” 对象。

    那里是被设置为 true,而且回调在client上的对象调用的 OnStartLocalPlayer() 属性 isLocalPlayer。下图显示两个client和他们 local players.。


    仅仅是 “yours” 的player对象  将已设置了 isLocalPlayer 标志。这能够用于筛选  输入的处理,能够处理相机附件。或做不论什么其它client仅仅应做为您的player的身边事。


    除了 isLocalPlayer,player对象能够有 “local authority”.  这意味着其拥有者的client上的player对象是负责对象 — — 它有授权。

    最经常使用的是 控制运动,但也被使用其它的东西。NetworkTransform 组件明确这一点,并将从client发送移动,假设设置该选项。NetworkIdentity 有一个复选框用于设置 LocalPlayerAuthority。

    对于非玩家对象如敌人,还有没有相关联的client。所以权威驻留在server上。


    NetworkBehaviour 上的属性 "isAuthority" 能够用来告诉是否 对象具有授权。

    所以非玩家对象在server上,具有权威和player对象与 localPlayerAuthority 有授权在其拥有者的client上。



  • 相关阅读:
    ELK安装(ubuntu)
    Ubuntu18.04上安装java
    .net core跨平台的文件路径
    缺少vim
    docker进入容器
    docker删除名字为none的imgae
    Ubuntu18.04上安装Docker-Compose
    Java类的反射
    Java常用类(二) Scanner类和大数类
    Java常用类(一)Math类和Random类
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6861372.html
Copyright © 2020-2023  润新知