private void OnPlayerStateChanged(PlayerStateChangedEventParameters parameters) { var sceneObject = SceneObjectsContainer.Instance.GetRemoteSceneObject(parameters.SceneObjectId)?.GetGameObject(); if (sceneObject != null) { sceneObject.GetComponent <PlayerStateSetter>()?.SetState(parameters.PlayerState); } }
public EmptyParameters?Handle(MessageData <UpdatePlayerStateRequestParameters> messageData, ref MessageSendOptions sendOptions) { var playerState = messageData.Parameters.PlayerState; var playerPositionController = sceneObject.Components.GetComponent <IPlayerPositionController>(); if (playerPositionController != null) { playerPositionController.PlayerState = playerState; } var parameters = new PlayerStateChangedEventParameters(playerState, sceneObject.Id); var messageSendOptions = MessageSendOptions.DefaultReliable((byte)GameDataChannels.Animations); interestAreaNotifier.NotifySubscribers((byte)GameEvents.PlayerStateChanged, parameters, messageSendOptions); return(null); }