public void forceOffWall(EWallDirection direction) { if (direction == EWallDirection.Left) { onLeftWallTimer = float.MinValue; forceOffLeftWallTimer = Time.fixedTime; } else { onRightWallTimer = float.MinValue; forceOffRightWallTimer = Time.fixedTime; } }
public bool isOnWall(EWallDirection direction) { // If the last time we were on a wall was roughly 2 frames ago, we are still on the wall if (direction == EWallDirection.Left) { if (forceOffLeftWallTimer != float.MinValue) { if (forceOffLeftWallTimer + Time.fixedDeltaTime > Time.fixedTime) { return(false); } else { forceOffLeftWallTimer = float.MinValue; return(true); } } return(onLeftWallTimer + 2 * Time.fixedDeltaTime > Time.fixedTime); } else { if (forceOffRightWallTimer != float.MinValue) { if (forceOffRightWallTimer + Time.fixedDeltaTime > Time.fixedTime) { return(false); } else { forceOffRightWallTimer = float.MinValue; return(true); } } return(onRightWallTimer + 2 * Time.fixedDeltaTime > Time.fixedTime); } }