- Home /
How do I convert my FPS controller movement script to a rigidbody to prevent clipping.
Could I convert mys script to one that uses rb.velocity, last time i did it the gravity was broken, and so was the jumping. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class characterController : MonoBehaviour { public float speed = 10.0f; public float straffeSpeed = 7.0f; public float jumpHeight = 3.0f; Rigidbody rb; // Start is called before the first frame update void Start() { Cursor.lockState = CursorLockMode.Locked; rb = GetComponent<Rigidbody>(); } // Update is called once per frame void Update() { float DisstanceToTheGround = GetComponent<Collider>().bounds.extents.y; bool IsGrounded = Physics.Raycast(transform.position, Vector3.down, DisstanceToTheGround + 0.1f); float translation = Input.GetAxis("Vertical") * speed; float straffe = Input.GetAxis("Horizontal") * straffeSpeed; translation *= Time.deltaTime; straffe *= Time.deltaTime; //anim.SetTrigger("isWalking"); transform.Translate(straffe, 0, translation); //rb.velocity = transform.forward * translation + transform.right * straffe ; if(IsGrounded && Input.GetKeyDown("space")) { Debug.Log("JUMP!"); rb.velocity = new Vector3(0, jumpHeight, 0); } if (Input.GetKey(KeyCode.R)) { SceneManager.LoadScene("Test Scene"); } if (Input.GetKeyDown("escape")) Cursor.lockState = CursorLockMode.None; } }
Your answer
Follow this Question
Related Questions
Why won't my rigidbody fps controller move? 1 Answer
Hi, I need some help to understand things about Multi First Person Controller in the same scene. 1 Answer
How to limit only the Rigidbody.velocity from player input? 1 Answer
How to use character controller to push down hinge joint properly 1 Answer
Kinematic rigidbody movement. 2 Answers