void SingleUpdate()
{
// Check if we are clamped to an object implicity or explicity
bool isClamping = clamping || currentlyClampedTo != null;
Transform clampedTo = currentlyClampedTo != null ? currentlyClampedTo : currentGround.transform;
if (clampToMovingGround && isClamping && clampedTo != null && clampedTo.position - lastGroundPosition != Vector3.zero)
transform.position += clampedTo.position - lastGroundPosition;
initialPosition = transform.position;
ProbeGround(1);
transform.position += debugMove * deltaTime;
gameObject.SendMessage("SuperUpdate", SendMessageOptions.DontRequireReceiver);
collisionData.Clear();
RecursivePushback(0, MaxPushbackIterations);
ProbeGround(2);
if (slopeLimiting)
SlopeLimit();
ProbeGround(3);
if (clamping)
ClampToGround();
isClamping = clamping || currentlyClampedTo != null;
clampedTo = currentlyClampedTo != null ? currentlyClampedTo : currentGround.transform;
if (isClamping)
lastGroundPosition = clampedTo.position;
if (debugGrounding)
currentGround.DebugGround(true, true, true, true, true);
if (AfterSingleUpdate != null)
AfterSingleUpdate();
}