Эта версия сайта больше не обновляется.
Перейти на новый сайт

Buffer icon Проекты

MoDI

MoDI. Lightweight IoC container for Unity.

MoDI. Lightweight IoC container for Unity.

MoDI. Lightweight IoC container for Unity.

MoDI — простой контейнер для внедрения зависимостей в Unity.

Когда я хочу в чём-то разобраться, я почти сразу перехожу к практической части. Если со старта не получается, тогда начинаю читать мануалы :) После этого, снова повторяю шаг №1 и так по кругу. Иногда это надоедает и я или ищу другие пути решения, или говорю себе, что это «не моё», мне это не надо — сдаюсь короче.

Решил я однажды разобраться как работать с Zenject и Ninject в Unity. Сделал несколько тестовых проектов — вроде работает. Начал копать дальше, понял принцип и решил, что хочу своё такое же, но попроще :) И чтобы было достаточно для всех моих разработческих потребностей. Так появился MoDI.

Не буду расписывать принцип инверсии зависимостей, об этом можно прочитать в более достоверных источниках. Скажу только, что более-менее серьёзный проект без этого сложно поддерживать и развивать. Да и вообще, один раз начав использовать сразу понимаешь все плюсы.

Это можно сказать и про ECS, да Leopotam? :)

MoDI можно подключить к проекту с помощью пакетного менеджера, через него же можно импортировать сцену с примерами. Ну или просто скачать архив и добавить в проект.

Простейший пример выглядит так:

using MoDI;
using UnityEngine;

public class QuickStart : MonoBehaviour {

    public void Start() {
        DI.Get().Bind<Hello>().WithArguments("Hi, I'm MoDI!");
        Hello hello = DI.Get().Resolve<Hello>();
    }
    
}

public class Hello {

    public Hello(string data) {
        Debug.Log(data);
    }

}

После запуска данного скрипта в консоли появится сообщение: «Hi, I’m MoDI!».

В документации можно найти ещё примеры и описание API.

Очередной велосипед для себя, но может кого-то заинтересует. Если хотите разработаться в этом как и я, пишите, помогу чем смогу ?

Поделиться
Отправить
Запинить
Отправить
1 комментарий
Жорж 2021

А почему не «Муди»?

Популярное