본문으로 건너뛰기

Network frame API

TSMP network payload는 frame payload 안의 compact message stream입니다. Variable state messages와 RPC messages를 포함합니다.

Network frame structure​

Part용도
Network frame headerVersion, message count, payload-level metadata.
Variable state message하나의 networkId와 하나 이상의 variable values.
RPC message하나의 networkId, 하나의 method hash, optional arguments.
Value payloadPrimitives, strings, arrays, packed byte[] data의 typed bytes.

빈 variable message는 쓰지 않아야 합니다. Component에 enabled field가 없으면 builder가 message를 rollback합니다.

Variable state messages​

Variable state message는 networkId로 target behaviour를 식별한 뒤 field entries를 담습니다.

Entry의미
variableHash[TransSync] key 또는 field name의 stable hash.
NetworkValueTypeEncoded value type.
LengthStrings, arrays, raw bytes에 필요.
DataValue bytes.

Decoder는 network ID, variable hash, direction, target field가 matching될 때만 value를 적용합니다.

RPC messages​

RPC message는 networkId로 target behaviour를, hash로 method를 식별합니다. 일반 entry point는 TSMPNetworkBehaviour.SendTransRPC()입니다.

TargetBehaviour
RPCTarget.LocalLocal에서만 실행합니다.
RPCTarget.RemoteReceiver에만 queue합니다.
RPCTarget.AllLocal에서 실행하고 receiver에도 queue합니다.

Value types​

Supported synchronized values에는 primitive numeric types, bool, Vector2, Vector3, Quaternion, string, byte[], supported arrays가 포함됩니다. Dense high-frequency data에는 byte[]를 사용하세요.

Binary helper use​

Protocol helpers는 little-endian value를 read/write합니다. Custom packed payload는 offset zero에 version byte를 두어 future change를 안전하게 처리하세요.