>>693
現在の回転(transform.rotation)に、現在の回転の軸を基準にした回転(Quaternion.AngleAxis)をかけてるから現在の回転が2重に計算されてるんじゃない?

transform.Rotate(x,y,0);はtransform.rotation*=Quaternion Euler(x,y,0);と等価
Quaternion Euler(x,y,0);はQuaternion.AngleAxis(y, Vector3.up) * Quaternion.AngleAxis(0, Vector3.right);と等価

よってtransform.upとtransform.rightをVector3.upとVector3.rightに書き換えれば行ける…と思うが確認はしていない、多分いけると思う