Slow falling speed on player (with RB), but all other objects are fine (checked scaling).
Hi all, so I have a player controller I've been fiddeling with, trying to add bits and bobs that I'm learning from different sources, I've got basically everything working and behaving as I want it, except the fall speed is very slow. I tried putting the script on a new object, but it produces the same problem, all the other objects in the scene with RB's fall at regular speeds, and everything is default scale. So I'm sure I messed up somewhere in my movement script, but I can't really figure it out.
Hope someone can help:
public float speed = 5;
public float rotation = 3;
public float height;
public float jumpPower = 5;
private Rigidbody charRB;
public GameObject target;
public GameObject chase;
public GameObject tpCamera;
public GameObject feet;
public bool grounded;
// Start is called before the first frame update
void Start()
{
charRB = GetComponent<Rigidbody>();
Cursor.visible = false;
}
// Update is called once per frame
void Update()
{
RaycastHit hit;
Ray groundRay = new Ray(feet.transform.position, Vector3.down);
if (Physics.Raycast(groundRay, out hit, height))
{
if (hit.collider.tag == "enviroment")
{
grounded = true;
}
} else
{
grounded = false;
}
tpCamera.transform.LookAt(this.transform);
target.transform.position = this.transform.position;
tpCamera.transform.position = Vector3.Lerp(tpCamera.transform.position, chase.transform.position, 5 * Time.deltaTime);
Vector2 mouseInput = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
Vector3 targetRotation = target.transform.eulerAngles;
targetRotation.y += mouseInput.x;
targetRotation.x += mouseInput.y * -1f;
target.transform.eulerAngles = targetRotation;
this.transform.rotation = target.transform.rotation;
}
private void FixedUpdate()
{
Vector3 forwardCam = tpCamera.transform.forward;
Vector3 rightCam = tpCamera.transform.right;
forwardCam.y = 0;
rightCam.y = 0;
forwardCam = forwardCam.normalized;
rightCam = rightCam.normalized;
float strafeMove = Input.GetAxis("Horizontal");
float forwardMove = Input.GetAxis("Vertical");
charRB.velocity = (forwardCam * forwardMove * speed) + (rightCam * strafeMove * speed);
if(Input.GetKey(KeyCode.Space) && grounded)
{
Jump();
}
}
public void Jump()
{
charRB.AddForce(Vector2.up * jumpPower);
}
Your answer
Follow this Question
Related Questions
Detect if falling with custom gravity 1 Answer
Moving rigidbody with addforce, velocity or position causes another object not to collide anymore. 0 Answers
3D Trigger collider slows player moved by forces 0 Answers
How to get objects to shake and fall off in 3D,Getting an object to shake and fall off in 3D 0 Answers