
Mirror
文章平均质量分 65
RuntimeCube
这个作者很懒,什么都没留下…
展开
-
[Unity Mirror] 拾取、掉落和子对象
英文原文:https://mirror-networking.gitbook.io/docs/guides/gameobjects/pickups-drops-and-child-objects 经常出现的问题是,如何处理作为玩家预制件的子对象,所有的客户端都需要知道并同步,比如哪种武器被装备了,拾取联网的场景对象,以及玩家将对象丢入场景。Mirror不能支持对象层次结构中的多个网络身份组件。由于 Player 对象必须有一个网络标识,它的子层级对象却不能有网络标识。子对象 让我们从翻译 2022-03-26 08:12:18 · 1602 阅读 · 0 评论 -
[Unity Mirror] 生成游戏对象
英文原文:https://mirror-networking.gitbook.io/docs/guides/gameobjects/spawning-gameobjects 在 Unity 中,您通常使用 Instantiate“生成”(即创建)新游戏对象。然而,在 Mirror 中,“spawn”这个词意味着更具体的东西。在 Mirror 的服务器权威模型中,在服务器上“生成”游戏对象意味着游戏对象是在连接到服务器的客户端上创建的,并由生成系统管理。 一旦使用此系统生成游戏对象,只要服务器上翻译 2022-03-23 10:32:11 · 4720 阅读 · 0 评论 -
[Unity Mirror] 场景游戏对象
英文原文:https://mirror-networking.gitbook.io/docs/guides/gameobjects/scene-gameobjectsMirror 的多人游戏系统中有两种类型的联网游戏对象:那些在运行时动态创建的那些被保存为场景的一部分 在运行时动态创建的游戏对象使用多人 Spawning 系统,并且它们实例化的预制件必须在网络管理器的联网游戏对象预制件列表中注册。 但是,您作为场景的一部分保存的联网游戏对象(因此在加载时已经存在于场景中)的处理方式不翻译 2022-03-23 10:31:43 · 766 阅读 · 0 评论 -
[Unity Mirror] NetworkManager Callbacks
英文原文:https://mirror-networking.gitbook.io/docs/guides/communications/networkmanager-callbacks 在多人游戏的正常运行过程中可能会发生许多事件,例如主机启动、玩家加入或玩家离开。这些可能的事件中的每一个都有一个关联的回调,您可以在自己的代码中实现该回调,以便在事件发生时采取行动。 要为 NetworkManager 执行此操作,您需要创建自己的脚本,该脚本继承自 NetworkManager。然后,您可以翻译 2022-03-23 10:30:51 · 506 阅读 · 0 评论 -
[Unity Mirror] 自定义角色生成
英文原文:https://mirror-networking.gitbook.io/docs/guides/gameobjects/custom-character-spawning 许多游戏需要角色定制。您可能想要选择头发、眼睛、皮肤、身高、种族等的颜色。 默认情况下,Mirror 将为您实例化Player。虽然这很方便,但它可能会阻止您对其进行自定义。 Mirror 提供了覆盖Player创建并对其进行自定义的选项。如果您还没有这样做,请创建一个扩展 NetworkManager 的类翻译 2022-03-23 10:30:21 · 2591 阅读 · 0 评论 -
[Unity Mirror] Player Game Objects
英文原文:https://mirror-networking.gitbook.io/docs/guides/gameobjects/player-gameobjects Mirror 处理玩家游戏对象与非玩家游戏对象的方式不同。当新玩家加入游戏时(当新客户端连接到服务器时),该玩家的游戏对象成为该玩家客户端上的“本地玩家”游戏对象,Unity 将玩家的连接与玩家的游戏对象相关联。 Unity 为每个玩游戏的人关联一个玩家游戏对象,并将网络命令路由到该单独的游戏对象。玩家不能在其他玩家的游戏对象上调翻译 2022-03-23 10:29:59 · 722 阅读 · 0 评论 -
[Unity Mirror] GameObjects
英文原文:https://mirror-networking.gitbook.io/docs/guides/gameobjects 网络游戏对象是由 Mirror 的网络系统控制和同步的游戏对象。使用同步的联网游戏对象,您可以为正在玩游戏实例的所有玩家创建共享体验。他们看到和听到相同的事件和动作——即使这可能来自他们在游戏中的独特观点。 Mirror 中的多人游戏通常使用包含联网游戏对象和常规(非联网)游戏对象的场景构建。联网游戏对象是在游戏过程中以需要在所有一起玩游戏的用户之间同步的方式移动翻译 2022-03-23 10:31:20 · 332 阅读 · 0 评论 -
[Unity Mirror] Network Messages
英文原文:https://mirror-networking.gitbook.io/docs/guides/communications/network-messages 在大多数情况下,我们建议使用高级命令和 RPC 调用以及 SyncVar,但您也可以发送低级网络消息。如果您希望客户端发送与游戏对象无关的消息,例如日志记录、分析或分析信息,这将很有用。 有一个名为 NetworkMessage 的公共接口,您可以扩展它来制作可序列化的网络消息结构。这个接口有序列化和反序列化函数,它们接受写翻译 2022-03-22 22:22:24 · 1005 阅读 · 0 评论 -
[Unity Mirror] NetworkBehaviour Callbacks
英文原文:https://mirror-networking.gitbook.io/docs/guides/communications/networkbehaviour-callbacks 在正常的多人游戏过程中可能会发生许多与网络行为相关的事件。其中包括主机启动、玩家加入或玩家离开等事件。这些可能的事件中的每一个都有一个关联的回调,您可以在自己的代码中实现该回调,以便在事件发生时采取行动。 当您创建一个继承自 NetworkBehaviour 的脚本时,您可以编写自己的实现来实现这些事件发翻译 2022-03-22 22:21:53 · 444 阅读 · 0 评论 -
[Unity Mirror] 远程操作
英文原文:https://mirror-networking.gitbook.io/docs/guides/communications/remote-actions 网络系统具有跨网络执行动作的方法。这些类型的操作有时称为远程过程调用。网络系统中有两种类型的 RPC,Commands - 从客户端调用并在服务器上运行;和 ClientRpc 调用 - 在服务器上调用并在客户端上运行。下图显示了远程操作采取的方向:命令 命令从客户端上的玩家对象发送到服务器上的玩家对象。为安全起见,默认翻译 2022-03-22 22:21:08 · 2163 阅读 · 0 评论 -
[Unity Mirror] 通讯
英文原文:https://mirror-networking.gitbook.io/docs/guides/communications 在制作多人游戏时,除了同步联网游戏对象的属性外,您可能还需要发送、接收和响应其他信息——例如比赛何时开始,玩家何时加入或离开比赛或特定于您的游戏类型的其他信息,例如通知所有玩家在“夺旗”式游戏中已夺取旗帜。 在 Mirror 网络高级 API 中,有三种主要方式来传达此类信息。远程操作 远程操作允许您通过网络调用脚本中的方法。您可以专门在所有客户端或翻译 2022-03-22 22:20:46 · 1134 阅读 · 0 评论 -
[Unity Mirror] SyncSortedSet
英文原文:https://mirror-networking.gitbook.io/docs/guides/synchronization/syncsortedset SyncSortedSet 是类似于 C# SortedSet 的集合,可将其内容从服务器同步到客户端。 与 SyncHashSet 不同,SyncSortedSet 中的所有元素在插入时都会进行排序。请注意,这有一些性能影响。 SyncSortedSet 可以包含任何支持的 mirror 类型使用方法SyncSor翻译 2022-03-22 22:20:21 · 158 阅读 · 0 评论 -
[Unity Mirror] SyncHashSet
英文原文:https://mirror-networking.gitbook.io/docs/guides/synchronization/synchashset SyncHashSet 是类似于 C# HashSet 的集合,可将其内容从服务器同步到客户端。 SyncHashSet 可以包含任何支持的 Mirror 类型使用方法SyncHashSet 必须声明为只读并在构造函数中初始化。将 SyncHashSet 字段添加到您的 NetworkBehaviour 类。例如:pub翻译 2022-03-22 22:20:01 · 206 阅读 · 0 评论 -
[Unity Mirror] SyncDictionary
英文原文:https://mirror-networking.gitbook.io/docs/guides/synchronization/syncdictionary SyncDictionary 是一个关联数组,其中包含键值对的无序列表。键和值可以是任何受支持的 mirror 类型。默认情况下,我们使用 .Net Dictionary,这可能会对键和值施加额外的约束。 SyncDictionary 的工作方式很像 SyncLists:当您在服务器上进行更改时,更改会传播到所有客户端并调用翻译 2022-03-22 22:19:41 · 437 阅读 · 0 评论 -
[Unity Mirror] SyncLists
英文原文:https://mirror-networking.gitbook.io/docs/guides/synchronization/synclistsSyncList 是类似于 C# List 的基于数组的列表,可将其内容从服务器同步到客户端。SyncList 可以包含任何受支持的镜像类型。与 UNET 的区别 UNET 也支持 SyncLists,但我们重新设计了它们以使其更高效且更易于使用。一些主要区别包括:在 UNET 中,SyncList 在更改时会立即同步。如果添加翻译 2022-03-22 22:19:03 · 1122 阅读 · 0 评论 -
[Unity Mirror] SyncVar Hooks
英文原文:https://mirror-networking.gitbook.io/docs/guides/synchronization/syncvar-hooks hook 属性可用于指定当客户端上的 SyncVar 更改值时要调用的函数。Hook 方法必须有两个与 SyncVar 属性类型相同的参数。一个用于旧值,一个用于新值。设置属性值后始终调用 Hook。你不需要自己设置。Hook 只对更改的值触发,在 Inspector 中更改值不会触发更新。从版本 11.1.4(2020翻译 2022-03-22 22:18:40 · 942 阅读 · 0 评论 -
[Unity Mirror] SyncVars
英文原文:https://mirror-networking.gitbook.io/docs/guides/synchronization/syncvars SyncVars 是从 NetworkBehaviour 继承的类的属性,它们从服务器同步到客户端。当生成游戏对象或新玩家加入正在进行的游戏时,将向他们发送对他们可见的联网对象上所有 SyncVar 的最新状态。使用 SyncVar 自定义属性指定要同步脚本中的哪些变量。 SyncVars 的状态在调用 OnStartClient() 之翻译 2022-03-22 22:21:34 · 781 阅读 · 0 评论 -
[Unity Mirror] 同步
英文原文:https://mirror-networking.gitbook.io/docs/guides/synchronization 状态同步是指对属于脚本的整数、浮点数、字符串和布尔值等值进行同步。 状态同步是从服务器到远程客户端完成的。本地客户端没有序列化的数据。它不需要它,因为它与服务器共享场景。但是,在本地客户端上调用 SyncVar 挂钩。 数据不会以相反的方向同步 - 从远程客户端到服务器。为此,您需要使用命令。SyncVarsSyncVars 是继承自 Netw翻译 2022-03-21 09:57:27 · 4007 阅读 · 0 评论 -
[Unity Mirror] 序列化
英文原文:https://mirror-networking.gitbook.io/docs/guides/serialization 本页深入介绍了序列化,有关基础知识,请参阅 DataTypes。 Mirror 使用 Weaver 为类型创建序列化和反序列化函数。 Weaver 在统一使用 Mono.Cecil 编译 dll 后编辑 dll。这允许镜像具有许多复杂的功能,例如 SyncVar、ClientRpc 和消息序列化,而无需用户手动设置所有内容。规则和提示 Weaver翻译 2022-03-21 09:57:07 · 760 阅读 · 0 评论 -
[Unity Mirror] 数据类型
英文原文:https://mirror-networking.gitbook.io/docs/guides/data-types客户端和服务器可以通过远程操作、状态同步或网络消息相互传递数据Mirror 支持您可以使用的多种数据类型,包括:基本 C# 类型(byte、int、char、uint、UInt64、float、string 等)内置 Unity 数学类型(Vector3、Quaternion、Rect、Plane、Vector3Int 等)URINetworkIdentity翻译 2022-03-21 09:56:45 · 915 阅读 · 0 评论 -
[Unity Mirror] 时间同步
英文原文:https://mirror-networking.gitbook.io/docs/guides/time-sync 对于许多算法,您需要在客户端和服务器之间同步时钟。 Mirror 会自动为您执行此操作。 要获取当前时间,请使用以下代码:double now = NetworkTime.time; 它将在客户端和服务器中返回相同的值。服务器启动时它从 0 开始。请注意,时间是双精度的,永远不应转换为浮点数。将其转换为浮点数意味着时钟将在一段时间后失去精度:1 天后,准确翻译 2022-03-21 09:56:24 · 863 阅读 · 0 评论 -
[Unity Mirror] Attributes
英文原文:https://mirror-networking.gitbook.io/docs/guides/attributes 网络Attributes被添加到网络行为脚本的成员函数中,以使它们在客户端或服务器上运行。 这些Attributes可用于 Unity 游戏循环方法,如 Start 或 Update,以及其他实现的方法。注意:当使用抽象或虚拟方法时,属性也需要应用于覆盖方法。[Server]只有服务器可以调用该方法(在客户端调用时会引发警告)。[ServerCa翻译 2022-03-21 09:55:50 · 476 阅读 · 0 评论 -
[Unity Mirror] IDs
英文原文:https://mirror-networking.gitbook.io/docs/guides/idsAsset Id Mirror 使用 GUID 作为资产 ID。每个带有 NetworkIdentity 组件的 prefab 都有一个 Asset Id,它只是 Unity 的 AssetDatabase.AssetPathToGUID 转换为 16 字节。 Mirror 需要它来知道要生成哪些预制件。Scene Id Mirror 使用 uint 作为场景 ID。场景(层翻译 2022-03-21 09:55:05 · 364 阅读 · 0 评论 -
[Unity Mirror] 权威
英文原文:https://mirror-networking.gitbook.io/docs/guides/authority网络权威权威是决定谁拥有一个对象并控制它的一种方式。服务端权威 服务端权威意味着服务器可以控制一个对象。默认情况下,服务器对对象具有权限。这意味着服务器将管理和控制收藏品、移动平台、NPC 和任何其他不是玩家的联网对象。客户端权威 客户端权威意味着客户可以控制一个对象。 当客户端对某个对象具有权威时,这意味着他们可以调用命令,并且当客户端断开连接时该对象将自翻译 2022-03-21 09:54:24 · 899 阅读 · 2 评论 -
[Unity Mirror] 网络概念概述
英文原文:https://mirror-networking.gitbook.io/docs/guides网络概念概述高级脚本 API Mirror 是一个“高级”网络库。使用这意味着您可以访问涵盖多用户游戏的大多数常见要求的命令,而无需担心“较低级别”的实现细节。Mirror允许您:使用“网络管理器”控制游戏的联网状态。运营“客户端托管”游戏,其中主机也是玩家客户端。使用通用序列化器序列化数据。发送和接收网络消息。从客户端向服务器发送网络命令。从服务器到客户端进行远程过程调用翻译 2022-03-21 09:53:51 · 652 阅读 · 0 评论 -
[Unity Mirror] Custom Interest Management
英文原文:https://mirror-networking.gitbook.io/docs/interest-management/custom自定义兴趣管理Mirror 允许您实施自定义兴趣管理解决方案。例如:基于 Raycast,因此 DotA 玩家看不到墙后或灌木丛中的其他玩家Counter-Strike 类游戏的预测性光线投射。 穿墙外挂显示玩家在墙后。您可以创建一个自定义兴趣管理系统,仅在敌人从墙后弹出前不久将其发送给玩家。在第一人称射击游戏中,玩家移动速度很快,所以你仍然需要在翻译 2022-03-21 09:50:21 · 242 阅读 · 0 评论 -
[Unity Mirror] Team Interest Management
英文原文:https://mirror-networking.gitbook.io/docs/interest-management/team团队 Interest 管理&em团队兴趣管理使用玩家对象上的网络团队组件以及需要将其可见性限制在团队中的网络对象,提供了仅对同一团队中的人可见的联网对象。...翻译 2022-03-21 09:49:54 · 228 阅读 · 0 评论 -
[Unity Mirror] Match Interest Management
英文原文:https://mirror-networking.gitbook.io/docs/interest-management/match匹配 Interest 管理Note: 不要将其用于基于物理的游戏……请改用场景 Interest 管理。匹配 Interest 管理适用于非物理游戏,如纸牌、棋盘、街机游戏。配置将 Match Interest Management 组件添加到与您的网络管理器相同的对象中: 并为所有将参与比赛的联网对象,包括 player 预制件,添加网翻译 2022-03-20 12:09:51 · 449 阅读 · 0 评论 -
[Unity Mirror] Scene Interest Management
英文原文:https://mirror-networking.gitbook.io/docs/interest-management/scene场景 Interest 管理 场景 Interest 管理与 Additive 场景一起使用,将网络对象与物理隔离的子场景结合使用。这意味着即使您在服务器上加载了相同子场景的多个实例,对象之间的冲突等也只会发生在该子场景内,而不会干扰其他子场景。服务器和连接的客户端总是加载相同的主场景。对于 Additive 场景,这通常是一个容器场景, Addit翻译 2022-03-20 12:06:05 · 470 阅读 · 0 评论 -
[Unity Mirror] Distance Interest Management
英文原文:https://mirror-networking.gitbook.io/docs/interest-management/distance远程 Interest 管理 Interest 管理的直接暴力解决方案是简单地将所有实体发送到范围内的所有连接。这就是 Network Proximity Checker 所做的:foreach spawned entity: foreach connection: if (Vector3.Distance(spawne翻译 2022-03-20 11:13:16 · 210 阅读 · 0 评论 -
[Unity Mirror] 空间散列
英文原文:https://mirror-networking.gitbook.io/docs/interest-management/spatial-hashing空间散列 Interest 管理 首先要做的事情是:“空间散列”听起来很复杂,因此我们网络程序员可以抚摸我们的自尊心。该技术实际上非常简单,如果您之前使用过 uMMORPG,您可能会记得它是“网格检查器”。无论如何,我们都会使用“空间散列”,因为这是行业术语。配置 将 Spatial Hashing Interest Manag翻译 2022-03-20 11:05:57 · 408 阅读 · 0 评论 -
[Unity Mirror] Interest Management
英文原文:https://mirror-networking.gitbook.io/docs/interest-management 在制作多人游戏时,第一个明显的方法是简单地将世界状态广播给每个玩家。默认情况下,当您不使用任何Interest管理组件时,Mirror 会执行此操作。图片来源: https://www.dynetisgames.com/2017/04/05/interest-management-mog/ 与其将完整的世界状态发送给每个玩家,不如考虑仅将玩家周围的内容发送给玩翻译 2022-03-20 10:57:24 · 368 阅读 · 0 评论 -
[Unity Mirror] Snapshot Interpolation
英文原文:https://mirror-networking.gitbook.io/docs/components/network-transform/snapshot-interpolation Mirror 的 NetworkTransform 组件使用快照插值。如果您不熟悉该术语:快照插值通过快照进行插值,同时缓冲足够多的快照以弥补延迟、丢包和加扰等非理想网络条件。在开发新的 NetworkTransform 组件时,我们有两个目标:使其稳定: 我们需要可以被数千个项目使用而不翻译 2022-03-20 10:19:48 · 505 阅读 · 0 评论 -
[Unity Mirror] Network Transform Child
英文原文:https://mirror-networking.gitbook.io/docs/components/network-transform/network-transform-child Network Transform Child 组件将游戏对象的子游戏对象的位置和旋转与 Network Transform 组件同步。您应该在需要同步联网游戏对象的独立移动子对象的情况下使用此组件。 要使用 Network Transform Child 组件,请将其附加到与 Network翻译 2022-03-20 09:49:27 · 716 阅读 · 0 评论 -
[Unity Mirror] Network Transform
英文原文:https://mirror-networking.gitbook.io/docs/components/network-transform Network Transform组件在网络上同步网络游戏对象的位置、旋转和缩放。 具有网络转换组件的游戏对象还必须具有网络身份组件。当您将 Network Transform 组件添加到游戏对象时,Mirror 还会在该游戏对象上添加一个 Network Identity 组件(如果它还没有)。 默认情况下,网络转换是服务器权威的,除非翻译 2022-03-20 09:46:56 · 1463 阅读 · 0 评论 -
[Unity Mirror] Network Start Position
英文原文:https://mirror-networking.gitbook.io/docs/components/network-start-position 要控制生成玩家的位置,您可以使用 Network Start Position 组件。 要使用这些,请将 Network Start Position 组件附加到场景中的游戏对象,并将游戏对象放置在您希望其中一名玩家开始的位置。您可以根据需要向场景中添加任意数量的起始位置。网络管理器检测场景中的所有起始位置,当它生成每个玩家实例时,它翻译 2022-03-20 09:34:42 · 419 阅读 · 0 评论 -
[Unity Mirror] Network Room Player
英文原文:https://mirror-networking.gitbook.io/docs/components/network-room-player Network Room Player在房间中时为网络室管理器存储每个玩家的状态。使用此组件时,您需要编写一个脚本,允许玩家指示他们已准备好开始游戏,该脚本设置 ReadyToBegin 属性。...翻译 2022-03-20 09:27:54 · 968 阅读 · 0 评论 -
[Unity Mirror] Network Room Manager
英文原文:https://mirror-networking.gitbook.io/docs/components/network-room-manager请查看 Mirror 文件夹中示例文件夹中的 Room 示例。 Network Room Manager是一种专门的网络管理器,在进入游戏的主要游戏场景之前提供一个多人房间。它允许你建立一个带有以下内容的网络:最大玩家限制当所有玩家都准备好时自动开始游戏开始后锁定,防止迟到者玩家在房间内选择选项的可定制方式Room Player翻译 2022-03-18 08:55:06 · 2193 阅读 · 0 评论 -
[Unity Mirror] Network Lerp Rigidbody
英文原文:https://mirror-networking.gitbook.io/docs/components/network-lerp-rigidbodyNetwork Lerp 刚体目前被归类为“实验性”,因此请分享您发现的任何问题或错误,如果生产构建,请自行承担使用风险。 Network Lerp Rigidbody 组件通过网络同步刚体的位置和速度。当您有一个non-kinematic 刚体时,该组件很有用,该刚体具有恒定的力(例如重力),但还希望对该刚体或具有权限的服务器或客户翻译 2022-03-18 08:36:17 · 258 阅读 · 0 评论 -
[Unity Mirror] Network Rigidbody
英文原文:https://mirror-networking.gitbook.io/docs/components/network-rigidbodyNetwork Rigidbody目前被归类为“实验性”,因此请分享您发现的任何问题或错误,如果生产构建,请自担风险使用。 Network Rigidbody 组件通过网络同步刚体的速度和其他属性。当您有一个 non-kinematic刚体时,该组件很有用,该刚体具有恒定的力(例如重力),但还希望对该刚体或具有权限的服务器或客户端施加力或改变速翻译 2022-03-18 08:31:46 · 631 阅读 · 0 评论