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);
        }