/// <summary> /// Call the callback that is attached to this value change /// </summary> /// <param name="sender">The object that has the value that is being watched</param> public void Callback(NetworkedMonoBehavior sender, bool overrideDirty = false) { // Only execute if the value has changed if (callback == null || (!IsDirty && !overrideDirty)) { return; } Unity.MainThreadManager.Run(() => { switch (callbackCallers) { case NetworkCallers.Everyone: callback(); break; case NetworkCallers.Others: if (!sender.IsOwner) { callback(); } break; case NetworkCallers.Owner: if (sender.IsOwner) { callback(); } break; } }); }
/// <summary> /// Assigns the object that is the players identity object /// </summary> /// <param name="behavior">The NetworkedMonoBehavior that represents the player</param> public void SetMyBehavior(NetworkedMonoBehavior behavior) { if (!behavior.isPlayer || PlayerObject != null) { return; } PlayerObject = behavior; }
private void DeserializeManualProperties(NetworkingPlayer player, NetworkingStream stream) { ulong networkedId = ObjectMapper.Map <ulong>(stream); NetworkedMonoBehavior.Locate(networkedId).DeserializeManualProperties(stream); }