Unity3D, множественное наследование, интерфейсы

avatar kure534

320

6

kure534

Пользователь

Регистрация: 09.07.2018

Сообщения: 5618

Рейтинг: 4226

kure534

Регистрация: 09.07.2018

Сообщения: 5618

Рейтинг: 4226

UPD: Форум проглотил угловые скобки с T, заменил угловые скобки на {}

Справедливо было бы дать название треду "Unity3D, множественное наследование, реализация интерфейсов по умолчанию", но столько букв не позволяет ввести


Цель:

В моей игре на Unity3D есть инвентарь и предметы

В инвентаре предметы хранятся как экземпляры класса Item

Для моей игры нужно сделать предметы-хранилища, например батарейки, магазины для оружия, канистры для топлива и т.д


Что я придумал: 

Я создал интерфейс ICell{T}, где T - это тип предмета, который хранится в хранилище (Энергия, пули, топливо и т.д)

т.к на данный момент в Unity3D нет поддержки C# 8.0, то реализация интерфейсов по умолчания мне не доступна - ОК, сделаю класс Celler{T}, который и реализовывать логику взятия/загрузки ресурса в ICell{T}


Т.е допустим мне нужно создать предмет-батарейку, что я делаю в моем случае:

Создаю класс Battery, который наследуется от класса Item.

Вешаю на класс Battery интерфейс ICell{Energy}.

Используя композицию добавляю экземпляр класса Celler{Energy}.

Реализую повешенный интерфейс просто вызывая методы у экземпляра класса Celler{Energy}


Сабж:

Насколько плоха/хороша эта архитектура?

Если бы я мог использовать реализацию интерфейсов по умолчанию, и мог нормально через инспектор редактировать поля в интерфейсах, то архитектура бы улучшилась или наоборот?

В чем отличие в предыдущем пункте множественного наследование от интерфейсов? 

 

P.s: извиняюсь за сломанный цвет текста в некоторых местах, я не нашёл дефолтный цвет текста после того как поменял его

Berglol

Пользователь

Регистрация: 20.09.2013

Сообщения: 934

Рейтинг: 1736

Berglol

Регистрация: 20.09.2013

Сообщения: 934

Рейтинг: 1736

kure534

Пользователь

Регистрация: 09.07.2018

Сообщения: 5618

Рейтинг: 4226

kure534

Регистрация: 09.07.2018

Сообщения: 5618

Рейтинг: 4226

?

Ты предлагаешь мне пролистать это все, с учетом того, что там используется другой язык, который поддерживает множественное наследование?

kure534

Пользователь

Регистрация: 09.07.2018

Сообщения: 5618

Рейтинг: 4226

kure534

Регистрация: 09.07.2018

Сообщения: 5618

Рейтинг: 4226

Поднятие темы

kure534

Пользователь

Регистрация: 09.07.2018

Сообщения: 5618

Рейтинг: 4226

kure534

Регистрация: 09.07.2018

Сообщения: 5618

Рейтинг: 4226

можно клоз, эта архитектура меня устраивает aqua.png@Moon-chan 

Кст в Celler'e лучше не юзать Generic'и, т.к инспектор в юнити не отрисовывает их нормально RaphiOhMy.png

Ну а т.к это приватное поле, то все нормально AnimeHappy.png

Lambda-chan

Пользователь

Регистрация: 26.07.2012

Сообщения: 4615

Рейтинг: 8642

Lambda-chan

Регистрация: 26.07.2012

Сообщения: 4615

Рейтинг: 8642

kure534 сказал(а):

можно клоз, эта архитектура меня устраивает aqua.png@Moon-chan 

Нажмите, чтобы раскрыть...

Хорошо

Тема закрыта