GetComponent
Unity's GetComponent() function is very expensive. You should cache the Rigidbody as such:
private Rigidbody rb;
private void Start() {
rb = GetComponent<Rigidbody>();
}
Ideally you would not want to run GetComponent every frame in Update; especially multiple in times. This will (probably) increase fps (since unity does not need to look it up multiple times before the next frame) and cpu load.
Re-Assignment
The code snippet below includes two IF checks; two assignments and two re-assignments
onGround = CheckGround();
//Different acceleration values for ground and air
float curAccel = accel;
if (!onGround)
curAccel = airAccel;
//Ground speed
float curMaxSpeed = maxSpeed;
//Air speed
if (!onGround)
curMaxSpeed = maxAirSpeed;
It could be refactored to include only two IF checks and two assignments (and its concise)
onGround = CheckGround();
float curAccel = onGround ? accel : airAccel;
float curMaxSpeed = onGround ? maxSpeed : maxAirSpeed;
These are just a few suggestions to make your game more accessible to those on lower spec hardware :)
Remember, optimization is easier to do when you write code rather than refactor it later on
GetComponent
Unity's
GetComponent()function is very expensive. You should cache the Rigidbody as such:Ideally you would not want to run
GetComponentevery frame inUpdate; especially multiple in times. This will (probably) increase fps (since unity does not need to look it up multiple times before the next frame) and cpu load.Re-Assignment
The code snippet below includes two IF checks; two assignments and two re-assignments
It could be refactored to include only two IF checks and two assignments (and its concise)
These are just a few suggestions to make your game more accessible to those on lower spec hardware :)
Remember, optimization is easier to do when you write code rather than refactor it later on