public void MovePlayer(PlayerInputStructs.MovementInput moveInput) { //print($"input in moveplayer {moveInput.moveX}, {moveInput.moveZ} "); Vector3 camForward = cam.transform.forward; Vector3 camRight = cam.transform.right; camForward = new Vector3(camForward.x, 0, camForward.z); //print($"camForward {camForward.x}, {camForward.y}, {camForward.z}"); moveDir = (camForward * moveInput.moveZ) + (camRight * moveInput.moveX); //print($"moveDir {moveDir.x}, {moveDir.y}, {moveDir.z}"); moveDir.Normalize(); Vector3 cross = Vector3.Cross(groundNormal, moveDir); cross = Quaternion.AngleAxis(-90, groundNormal) * cross; moveDir = cross; Debug.DrawRay(this.transform.position, moveDir * 5, Color.green); Vector3 printMoveDir = (moveDir * moveSpeed); //print($"move DIR {printMoveDir.x}, {printMoveDir.z}"); rb.MovePosition(this.transform.position + (moveDir * moveSpeed)); }
private void UpdateMovementInput() { PlayerInputStructs.MovementInput moveInput; moveInput.moveX = Input.GetAxisRaw("Horizontal"); //Forward/back moveInput.moveZ = Input.GetAxisRaw("Vertical"); //Left/Right _movementInput = moveInput; }