void Update() {
transform.Rotate(Vector3.right * -Input.GetAxis("Vertical") * Time.deltaTime * speed); //入力に応じて回転
transform.rotation = Quaternion.Euler(transform.eulerAngles);             //オイラー角に変換してクォータニオンに再変換してるだけ
}

こんな単純なスクリプトなのに回してると真上で「ガッ」と引っかかったりして困ります…
2行目をコメントアウトすると治ることから、オイラー角が犯人なようなのですが…
これは単純化してるので意味不明になってますが、
実際のスクリプトでは2行目にClampをかませて角度制限してるのでなくすわけにも行きません。

どうするべきでしょうか…?