>>317
void Update()
{
float y = gameObject.transform.position.y;
if (y < 0.5f)
{
Debug.LogWarning("I can fly:" + y);
}
else if (y > 0.7f)
{
Debug.LogError(y);
}
else if (y > 0.5f)
{
Debug.Log(y);
}
}

PlayerContorller.csのUpdateにログ出力を組んだ以外は全く同一
壁にぶつかっても0.7f以上跳ねないから、0.7f以上浮いたら飛んだと判定して
LogErrorで一時停止してる

物理演算は接触したらcolliderで外に追い出すだけだから、
実際には常に0.5にはならず、自由落下と反発を繰り返してる
完全に0.5の時は計算しないみたいだけど、それ以外の時は
ずっと計算してる