Enum GhostSendType
An optimization: Set on each GhostComponent via the GhostComponentAttribute (or via a variant).
When a Ghost is OwnerPredicted, OR its SupportedGhostModes is known at compile time, this flag will filter which types of clients will receive data updates.
Maps to the GhostMode of each Ghost.
Note that this optimization is not available to Ghosts that can have their GhostMode modified at runtime!
Namespace: Unity.NetCode
Assembly: Unity.NetCode.dll
Syntax
[Flags]
public enum GhostSendType
Remarks
GhostSendType works for OwnerPredicted ghosts because:
- The server can infer what GhostMode any given client will have an OwnerPredicted ghost in. It's as simple as: If Owner, then Predicting, otherwise Interpolating.
- The server cannot infer what GhostMode a ghost supporting both Predicted and Interpolated can be in, as this can change at runtime (see GhostPredictionSwitchingQueues. Thus, the server snapshot serialization strategy must be identical for both.
GhostSendType also works for Ghosts not using All because:
- The server can infer what GhostMode any given client will have its ghost in, as it cannot change at runtime.
Applies to all components (parents and children).
Examples
A velocity component may only be required on a client if the ghost is being predicted (to predict velocity and collisions correctly). Thus, use GhostSendType.Predicted on the Velocity component.
Fields
Name | Description |
---|---|
AllClients | The server will always replicate this component. Default. |
DontSend | The server will never replicate this component to any clients. Works similarly to DontSerializeVariant (and thus, redundant, if the DontSerializeVariant is in use). |
OnlyInterpolatedClients | The server will only replicate this component to clients which are interpolating this Ghost. Interpolated). |
OnlyPredictedClients | The server will only replicate this component to clients which are predicted this Ghost. Predicted). |