The reason the Unity docs tell you to use LateUpdate() for camera stuff is to avoid stuttering cameras. Otherwise you might have the camera moving the place it's supposed to be before the thing it's following has moved to where it's supposed to be, which both introduces a frame of lag and if your frametimes are not consistent then the amount of lag will vary from frame to frame, so it will look all juddery. You can call should be able to call Input.GetButtonUp() in LateUpdate() just fine. For simplicity's sake, I personally would move all of the camera control code to LateUpdate().
I think what will help you is to not set centerCam to false until after the camera has been reset, so check to see if it's moved far enough that you consider it to be reset. You might try something like
I think what will help you is to not set centerCam to false until after the camera has been reset, so check to see if it's moved far enough that you consider it to be reset. You might try something like
Code:
if (centerCam == true) {
ResetCamera();
if (Quaternion.Angle(camTransform.forward, target.forward) < 1.0f) {
centerCam = false;
}
}