Rayをデフォルトのキューブの正面方向に飛ばしたいのですが、このスクリプトですと、-y方向と+x方向に若干ずれてしまいます。

原因と修正方法を教えて下さい。

Ray ray = new Ray(transform.position, transform.TransformDirection(Vector3.forward));
//    ↑ transform.forwardと同一?

//Rayが当たったオブジェクトの情報を入れる箱
RaycastHit hit;

//Rayの飛ばせる距離
int distance = 100;

//Rayの可視化 ↓Rayの原点    ↓Rayの方向         ↓Rayの色
Debug.DrawLine(ray.origin, ray.direction * distance, Color.red);

//もしRayにオブジェクトが衝突したら
// ↓Ray ↓Rayが当たったオブジェクト ↓距離
if (Physics.Raycast(ray, out hit, distance))
{
//Rayが当たったオブジェクトのtagがPlayerだったら
if (hit.collider.tag == "Player")
Debug.Log("RayがPlayerに当たった");
}