Я создаю интерфейс обработчика столкновений для игрового проекта. Я пытаюсь заставить реализованный класс принимать подчиненные интерфейсы IGameObject.
Я пытался использовать IGameObject, который имеет подчиненные интерфейсы IEnemy, IPlayer и т. Д.
interface ICollisionHandler
{
void HandleCollision(IGameObject object1, IGameObject object2);
}
class GenericCollision: ICollisionHandler
{
public void HandleCollision(IGameObject foo, IEnemy bar)
{
bar.TakeDamage();
}
}
GenericCollision долженпринять IEnemy, так как это подчиненный интерфейс IGameObject, но это делает его таким, что ICollisionHandler не реализован. Как я могу решить эту проблему?