Сделайте один рут объект, на котором будет весь основной фарш (движение + твёрдое тело + коллайдеры). Объекты с графикой сделайте дочерними.
При повороте персонажа делайте не флип, а вращение по оси Y рут объекта. Как-то так (x - это ввод с оси "Horizontal"):
if (x != 0)
transform.eulerAngles = new Vector3(transform.eulerAngles.x, x > 0 ? 0 : 180, transform.eulerAngles.z);
// если оси X/Z без вращения, то можно так:
if (x != 0)
transform.eulerAngles = new Vector3(0, x > 0 ? 0 : 180, 0);