Правильно ли я понимаю, что интерфейсы нужно использовать только тогда, когда есть несколько объектов, которые используют один и тот же класс?
Например, я знаю, что на сцене всего 1 игрок, который может двигаться с помощью элементов клавиатуры (WASD/Стрелочки), то мне не нужно создавать интерфейс IMovable.
Но если есть несколько объектов, с которыми игрок может взаимодействовать, например, сущности, которым игрок может наносить урон и они (сущности) будут терять определенное кол-во очков здоровья. То, наверное, стоило бы добавить интерфейс IHittable для нанесения урона (например, не только игрок может наносить урон, но и враги) и IDamageable для получения урона (Урон может получать игрок и враги или кто-то еще).
Если же сущности нужно следовать за игроком, то нужно создать интерфейс IFollow\IFollowable...
Вопрос не касается Unity, и даже C# он касается только едва. Советую изучить основные принципы ООП, разобраться в понятии "интерфейс", "наследование", "абстрактный класс" и т.п. Попробуй ответить для себя на следующий вопрос: в чем отличие наследования класса и реализации интерфейса? Когда что лучше использовать?
Интерфейсы МОЖНО использовать тогда когда есть несколько РЕАЛИЗАЦИЙ одной логики.
А ваши примеры на уровне юнити можно даже компонентами решить. А можно и интерфейсами.