SyncVar Hooks
The hook attribute can be used to specify a function to be called when the SyncVar changes value on the client.
The Hook method must have two parameters of the same type as the SyncVar property. One for the old value, one for the new value.
The Hook is always called after the property value is set. You don't need to set it yourself.
The Hook only fires for changed values, and changing a value in the inspector will not trigger an update.
As of version 11.1.4 (March 2020) and later, hooks can be virtual methods and overriden in a derived class.
Below is a simple example of assigning a random color to each player when they're spawned on the server. All clients will see all players in the correct colors, even if they join later.
Note: The signature for hook methods was changed in version 9.0 (Feb 2020) to having 2 parameters (old and new values). If you're on an older version, hook methods just have one parameter (new value).
Hook call order
Hooks are invoked in the order the syncvars are defined in the file.
if X, Y, and Z are all set on the server at the same time then the call order will be:
X value is set
Y value is set
Hook1 is called
Z value is set
Hook2 is called
Last updated