>>337
難しく考えすぎだと思う
hit.pointはワールド座標ですがtransform.InverseTransformPoint(Vector3)でキューブオブジェクトのローカル座標に変換できます
後は(1,0,0),(-1,0,0),(0,1,0),(0,-1,0),(0,0,1),(0,0,-1)との内積を計算して1に最も近いのがヒットした面の法線方向です
立方体なら簡単に分かる問題

void Update () {
 if(Input.GetMouseButton (0)) {
  Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  RaycastHit hit;
  if(Physics.Raycast(ray,out hit)) {
   var hitPointLocal = transform.InverseTransformPoint(hit.point);
   var faces = new Vector3[] {
    Vector3.right,
    -Vector3.right,
    Vector3.up,
    -Vector3.up,
    Vector3.forward,
    -Vector3.forward,
   };
   var face = faces.OrderBy((c) => Mathf.Abs((1.0f - Vector3.Dot(c,hitPointLocal)))).First();
   Debug.Log (face);
  }
 }
}

こんな感じでどうでしょうか?(Linq使ってるのでusing System.Linq;を頭に追加してください)