コード例 #1
0
        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));
        }
コード例 #2
0
        private void UpdateMovementInput()
        {
            PlayerInputStructs.MovementInput moveInput;


            moveInput.moveX = Input.GetAxisRaw("Horizontal"); //Forward/back
            moveInput.moveZ = Input.GetAxisRaw("Vertical");   //Left/Right


            _movementInput = moveInput;
        }