Example #1
0
        private void LocalClientUpdate()
        {
            if (isServer)
            {
                return;
            }

            float timestamp = Time.time;

            if (isPredictionEnabled)
            {
                _screenWrapper.CheckObjectOutOfScreen();
                Vector2 position = transform.position;

                _predictedPackages.Add(new PositionTimestampReceivePackage
                {
                    percentX = ExtensionFunctions.Map(position.x, _screenWrapper.LeftMostPoint,
                                                      _screenWrapper.RightMostPoint, -1, 1),
                    percentY = ExtensionFunctions.Map(position.y, _screenWrapper.TopMostPoint,
                                                      _screenWrapper.BottomMostPoint, 1, -1),

                    timestamp = timestamp
                });
            }
        }
        private void LocalClientUpdate()
        {
            if (!isLocalPlayer || isServer)
            {
                return;
            }

            float moveZ     = Input.GetAxis(Controls.PlayerVM);
            float moveX     = Input.GetAxis(Controls.PlayerHM);
            float timestamp = Time.time;

            if (isPredictionEnabled)
            {
                RotatePlayer(moveX);
                MovePlayerForward(moveZ);
                SetMovementAnimation(moveZ);
                _screenWrapper.CheckObjectOutOfScreen();

                Vector3 position = transform.position;
                Vector3 rotation = transform.rotation.eulerAngles;
                Vector3 velocity = _playerRb.velocity;

                _predictedPackages.Add(new PositionReceivePackage
                {
                    percentX = ExtensionFunctions.Map(position.x, _screenWrapper.LeftMostPoint,
                                                      _screenWrapper.RightMostPoint, -1, 1),
                    percentY = ExtensionFunctions.Map(position.y, _screenWrapper.TopMostPoint,
                                                      _screenWrapper.BottomMostPoint, 1, -1),

                    velocityX = velocity.x,
                    velocityY = velocity.y,

                    rotationZ = rotation.z,
                    roll      = _roll,

                    movementAnimation = moveZ > 0,

                    timestamp = timestamp,
                });
            }

            PacketManager.AddPackage(new InputSendPackage
            {
                horizontal = moveX,
                vertical   = moveZ,

                timestamp = timestamp
            });
        }