Skip to content

Home > @esengine/ecs-framework-monorepo > NetworkIdentity

NetworkIdentity class

网络身份组件

为实体提供网络同步能力的核心组件。 每个需要网络同步的实体都必须拥有此组件。

集成了事件系统,当属性变化时自动发射事件用于网络同步。

Signature:

typescript
export declare class NetworkIdentity extends Component

Extends: Component

Properties

Property

Modifiers

Type

Description

authority

AuthorityType

权限类型 决定哪一端对此实体有控制权

customSyncFilter?

(clientId: string) => boolean

(Optional) 自定义同步过滤器 用于自定义作用域的同步逻辑

distanceThreshold

number

距离阈值 用于附近同步模式,超过此距离的客户端不会收到同步

isLocalPlayer

boolean

是否是本地玩家 标识此实体是否代表本地玩家

lastSyncTime

number

最后同步时间 记录上次同步的时间戳

networkId

number

网络ID (全局唯一) 用于在网络中标识实体

ownerId

string

拥有者ID 表示哪个客户端拥有此实体的控制权

priority

number

同步优先级 影响同步的顺序和频率,数值越高优先级越高

scope

NetworkScope

网络作用域 决定哪些客户端可以看到此实体

syncEnabled

boolean

是否启用网络同步 临时禁用/启用同步

syncRate

number

同步频率 (Hz) 每秒同步的次数

visible

boolean

是否可见 控制实体是否对其他客户端可见

Methods

Method

Modifiers

Description

addEventListener(eventType, handler)

添加事件监听器

dispose()

组件销毁时清理事件监听器

getDebugInfo()

获取调试信息

getSyncWeight(distance)

获取实体的同步权重 基于优先级和距离计算

hasAuthority(clientId)

检查客户端是否有权限修改此实体

onAuthorityChanged(handler)

监听权限变化事件

onOwnerChanged(handler)

监听拥有者变化事件

onPropertyChanged(handler)

监听属性变化事件

onSyncStateChanged(handler)

监听同步状态变化事件

removeEventListener(eventType, handler)

移除事件监听器

setAuthority(authority)

设置权限类型

setOwner(clientId)

设置拥有者

setSyncEnabled(enabled)

设置同步状态

setSyncRate(rate)

设置同步频率

shouldSyncToClient(clientId, distance)

检查是否应该同步给指定客户端

基于 MIT 许可证发布