まぁ要するにヒット判定がなかった場合RayCastHitは上書きされないということだ。
ちょっと謎なのはDoWhile内でRayCastHitを確保した場合で
これが何故か値が残るんだよな〜。でもCheckTerrainHit()の頭で確保してる分には
あたいがのこったりしない。つまり次のフレームまでは残らない。
まぁでもとりあえずは上に書いたようにしとけば動くよ。