孙广东   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上。

Unity5.1 新的网络引擎UNET(八) UNET 系统概括的更多相关文章

  1. Unity5.1 新的网络引擎UNET(二) UNET 官方推荐Demo案例

    http://blog.csdn.net/u010019717/article/details/46873153 视频 http://www.iqiyi.com/playlist391685502.h ...

  2. Unity5.1 新的网络引擎UNET(九) UNET 官方推荐视频教程

    孙广东  2015.7.14 在新的网络引擎出现之前,Unity提供的是 内置 Raknet网络引擎, 这一次Unity想更新UGUI一样,花了大的手笔更新了, UNET. 原来的旧的网络组件 被提示 ...

  3. Unity5.1 新的网络引擎UNET(十五) Networking 引用--下

     孙广东 2015.7.21 本节提供了与网络系统一起使用的组件的具体信息. 10.Network Proximity Checker Suggest a change Success! Than ...

  4. Unity5.1 新的网络引擎UNET(十五) Networking 引用--中

    孙广东 2015.7.21 本节提供了与网络系统一起使用的组件的具体信息. 3.NetworkClient NetworkClient 是一个 HLAPI 类,管理网络连接到服务器 - - 相应着 U ...

  5. Unity5.1 新的网络引擎UNET(十五) Networking 引用--上

    http://blog.csdn.net/u010019717/article/details/46993697 孙广东  2015.7.21 本节提供了与网络系统一起使用的组件的详细信息. 1.Ne ...

  6. Unity5.1 新的网络引擎UNET(四) UNET Remote Actions

    孙广东   2015.7.12 网络系统 具有网络中执行操作actions 的方法.这些类型的actions 有时是调用远程过程调用(Remote Procedure Calls). 在网络系统中有两 ...

  7. Unity5.1 新的网络引擎UNET(七) UNET 单人游戏转换为多人

     单人游戏转换为多人   孙广东   2015.7.12 本文档描写叙述将单人游戏转换为使用新的网络系统的多人游戏的步骤.这里描写叙述的过程是简化,对于一个真正的游戏事实上须要更高级别版本号的实际 ...

  8. 微软引入了两种新的网络过滤系统,WFP和NDISfilter

    Windows 8是微软公司推出的最新的客户端OS,内部名称Windows NT 80.相对于Windows NT 5.x,其网络结构变化非常大,原有的TDI,NDIS系统挂接方法不再适用.在Wind ...

  9. Unity5 的新旧延迟渲染Deferred Lighting Rendering Path

    unity5 的render path ,比4的区别就是使用的新的deferred rendering,之前的4的deferred rendering(其实是light prepass)也被保留了下来 ...

随机推荐

  1. Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框(转载)

    https://blog.csdn.net/evangel_z/article/details/7332535

  2. memcached 经典问题或现象

    缓存雪崩现象及真实案例 缓存雪崩一般是由某个缓存节点失效,导致其他节点的缓存命中率下降, 缓存中缺失的数据 去数据库查询.短时间内,造成数据库服务器崩溃. 重启 DB,短期又被压跨,但缓存数据也多一些 ...

  3. 如何用纯 CSS 创作一个容器厚条纹边框特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/YLqbXy 可交互视频教程 此视 ...

  4. 第六天,字典Dictionary

    字典(Dictionary)在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种结构类型通常也被称为映射,或者叫关联数组,也有叫哈希表的.每个key-value之 ...

  5. Selenium学习系列---- FirePath的安装和使用

    在用Selenium编写测试用例的时候,需要对对网页元素上定位,而现在很多的浏览器是可以看到网页上相关的元素信息,可以查看某一个网页的元素信息,通过定位的方式查找元素.另外安装好Selenium ID ...

  6. java常见问题集锦

    Eclipse 编译错误 Access restriction:The type *** is not accessible due to restriction on... 解决方案 Eclipse ...

  7. Linux基础之基本命令cat less more sort uniq alias 命令行 bash简单描述(三)

    获取Linux当前最新的内核版本号经常关注www.kernel.org 目录管理:ls cd pwd mkdir rmdir tree 文件管理:touch stat file rm cp mv na ...

  8. [luoguP1866]滑动窗口(单调队列)

    传送门 可以搞2个单调队列. 然后,然后就没有然后了. # include <iostream> # include <cstdio> # include <cstrin ...

  9. POJ 2391 Ombrophobic Bovines【二分 网络流】

    题目大意:F个草场,P条道路(无向),每个草场初始有几头牛,还有庇护所,庇护所有个容量,每条道路走完都有时间,问所有奶牛都到庇护所最大时间最小是多少? 思路:和POJ2112一样的思路,二分以后构建网 ...

  10. hdu 1421经典dp

    #include<stdio.h> #include<stdlib.h> #define N 2001 #define inf 0x3fffffff int a[N],dp[N ...