The presentation is amazing! However, the game wouldn't register the jump button half the time, leading to some frustrating moments where the character didn't jump as supposed to. I see 2 things that may cause this issue:
1) You are checking for input on FixedUpdate(). That's really bad, you should be always checking for inputs every single frame. Use Update() instead. Here:
Update(){
bool Jump = Input.GetButtonDown("space");
if (Jump == true) {
bool HasJumped = true;
}
}
FixedUpdate() {
if (HasJumped == true) {
// Insert physics calculations here.
HasJumped = false;
}
}
2) You check for an OnCollisionEnter/Stay/Exit instead of an OnTriggerEnter/Stay/Exit. The problem with this is that OnCollisionEnter isn't reliable for checking states. On your prefab or gameObject for the brain place a trigger collider on top that takes up some space and is set as a Trigger. Now use OnTriggerEnter/Stay/Exit to use it.
OnTriggerEnter (Collider other) {
if (other.gameObject.tag == "Brain") {
bool TouchingBrain = true;
}
}