UDN
Search public documentation:

ReplicationGlossaryCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 主页 > 网络&复制 > 复制相关的术语表

复制相关的术语表


Actor角色


角色定义了应该如何在服务器 和/或 客户端上处理该actor。
  • ROLE_None - 这个actor没有角色。
  • ROLE_SimulatedProxy - 仿真actor是个用于在客户端上模拟基本物理的临时的、近似代理。仿真actor尽可以执行仿真脚本函数并进入到仿真状态中。
  • ROLE_AutonomousProxy - 一个自治actor,具有用于处理运动的针对客户端预测的内置逻辑。自治actor可以执行任何脚本函数,并且可以进入任何状态。
  • ROLE_Authority - 拥有这个actor的运行时系统对这个actor具有绝对的、权威的控制。

WorldInfo(世界信息)网络模式


NetModes(网络模式)定义了世界信息的网络状态。
  • NM_Standalone - 世界信息作为一个单玩家游戏运行。
  • NM_DedicatedServer - 世界信息作为专用服务器运行。
  • NM_ListenServer - 世界信息作为具有一个或多个局部客户端的服务器运行。
  • NM_Client - 世界信息作为客户端运行。

各种属性标志


  • RepNotify - 当通过复制更新这个变量时,将调用 ReplicatedEvent ,并将'VarName'函数参数设置为变量名称。
    • 示例 - var() RepNotify int ClassIndex;

事件/函数 属性标志


  • Reliable - 这些事件或函数在客户端和服务器之间总是按顺序发送及接收。
    • 示例 - 可靠的服务器函数MyReliableServerFunction();
  • Unreliable - 这些事件或函数可以在客户端或服务器之间发送和接收。如果受到带宽限制可以丢掉部分数据信息。
    • 示例 - 不可靠的服务器函数MyUnreliableFunction();
  • Server - 当在客户端上调用这些事件或函数,将会在服务器上执行它们。服务器端actor不应该直接调用这些事件或函数,相反它会调用执行实际逻辑的事件或函数。因此服务器应该作为客户端和服务器之间的通信桥梁。
    • 示例 - 服务器函数MMyServerFunction();
  • Client - 当在服务器上调用这些事件或函数时,在客户端上执行它们。和服务器事件或函数不同,这些事件或函数可以包含实际的处理逻辑。
    • 示例 - 客户端函数MyClientFunction();
  • Simulated - 远程客户端上角色为ROLE_SimulatedProxy或ROLE_AutonomousProxy的actor可以执行这些事件或函数。
    • 示例 - 仿真函数MySimulatedFunction();

状态属性标志


  • Simulated - 远程客户端上角色为ROLE_SimulatedProxy或ROLE_AutonomousProxy的actor可以进入这些状态。
    • 示例 - 仿真状态MySimulatedState { }

复制变量


这些是位于可以控制复制如何在客户端和服务器上处理的actor内的变量。

Actor

  • NetPriority - 虚幻引擎3使用了一个加载平衡技术,它根据所有actor实例的优先级给它们分配一条贷款。某些actors可能需要比其他actors更多的复制更新,因此应该把这些actor的这个值设置得更高。示例:
    • Actor = 1.0
    • Pawns = 2.0
    • PlayerController = 3.0
    • Projectiles = 2.5
    • Inventory = 1.4
    • Vehicle = 3.0
  • Role - 运行时系统上的actor的角色。
  • RemoteRole - 远程运行时系统上的actor的角色。
  • bNetDirty - 如果对任何复制属性进行了修改那么设置这项为true。
  • bNetInitial - 直到所有复制属性的第一次复制完成为止这项将一直为true。
  • bNetOwner - 如果上层拥有者是由当前客户端控制的PlayerController那么设置该项为true。
  • bAlwaysRelevant - 是否总是和网络相关。
  • bGameRelevant - 是否总是和游戏相关。
  • bReplicateInstigator - 复制instigator(发起者)变量到客户端。
  • bReplicateMovement - 复制运动 和/或 位置相关的属性。
  • bSkipActorPropertyReplication - 不要为这个actor复制actor类变量。
  • bUpdateSimulatedPosition - 当仿真代理初始化后更新速度 和/或 位置。
  • bTearOff - 不再将这个actor复制到新的客户端,并且在正向其进行复制的客户端上将它的角色设置为 ROLE_Authority
  • bOnlyDirtyReplication - 如果bNetDirty为true,则仅复制这个actor。这项仅当bAlwaysRelevant为true时使用。
  • NetUpdateFrequency - 每秒钟考虑可虑复制这个actor多少次,用于决定NetUpdateTime。
  • bForceNetUpdate - 设置这项为true,强制立即考虑复制这个actor。

WorldInfo(世界信息)

  • MinNetVersion - 获得网络兼容性所需的最小的引擎版本。该版本可以使得客户端连接的最新的服务器上。当更新仅发生在服务器端并且不影响客户端时这是有用的。
  • NetMode - 这个世界信息的网络模式。使用这项设置来决定正在运行的运行时系统的类型。
  • ReplicationViewers - 世界中所有观察者组成的动态数组,需要对些观察者进行判断来获得它们相关性。

GameInfo(游戏信息)

  • bHasNetworkError - 跟踪由于严重的网络错误服务器是否可以传送数据。
  • AdjustedNetSpeed - 当前的调整网速。用于动态管理监听服务器的网速。
  • LastNetSpeedUpdateTime - 上次服务器更新的时间(由客户端进入或离开导致的更新)。
  • TotalNetBandwidth - 监听服务器的总可用带宽,动态地分布到网络连接上。(配置变量)
  • MinDynamicBandwidth - 可以给每个连接动态设置的最小带宽。(配置变量)
  • MaxDynamicBandwidth - 可以给每个连接动态设置的最大带宽。(配置变量)

常量复制变量


在可以用于检测复制状态的Actor中有一些复制变量。这些复制变量可以在actor的默认属性中进行设置,来控制如何在客户端 和/或 服务器上处理复制。
  • bNetTemporary - 在网络玩游戏过程中脱离仿真。
  • bOnlyRelevantToOwner - 这个actor仅和它的拥有者相关。
  • NetTag -这个actor的内部网络标签。
  • NetUpdateTime - 下一次考虑复制actor的时间。
    • SetNetUpdateTime(float NewUpdateTime) - 这个函数可以用于设置下一次考虑复制这个actor的时间。
  • LastNetUpdateTime - 上一次通过复制更新actor的时间。这和WorldInfo.TimeSeconds 没有 关系。
  • bPendingNetUpdate - 由于客户端不能在LastNetUpdateTime时复制actor,所以这个actor正在等待完全的网络更新。

复制 事件/函数


  • simulated event ReplicatedEvent(name VarName) - 当复制了一个具有RepNotify属性标志"RepNotify"的变量时调用这个事件。
  • native final function SetForcedInitialReplicatedProperty(Property PropToReplicate, bool bAdd) - 从当Actor的bNetInitial设置为true时总是要复制的属性的列表中添加或删除一个属性,即时代码认为客户端和服务器的值已经一样也许执行该动作。这是个问题解决方案,即当关卡设计人员把一个actor放置到关卡中,然后修改复制变量使它不再是默认值,然后在运行时变量被改回到默认值但是却不能复制改变后的值,因为最初复制是基于类的默认值的。该函数仅用于将bStatic或bNoDelete设置为true的actor。仅可以指定已经在拥有者类的复制块中的属性。
  • event TornOff() - 当actor已经脱离网络且bTornOff为true时调用该事件。
  • event ForceNetRelevant() - 当natvie代码强制这个actor为相关actor时调用该事件。您也可以在UnrealScript中调用这个事件来执行同样的工能。
  • final native function SetNetUpdateTime(float NewUpdateTime) - 可以使用这个函数来设置下一次考虑复制这个actor的时间。