본문으로 건너뛰기

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를 안전하게 처리하세요.