Pull to refresh

Comments 4

Хороший пост, как всегда.

С высоты своего бесконечного опыта работы с LeoECS Lite (4 месяца) хочу отметить, что использование EcsCustomInject на этапе разработки усложняет рефакторинг, потому что контролировать что куда заинжектил можно только через комментарий к соответствующей системе, лучше пользоваться внедрением через конструктор.

И уже отдельно для автора, вот такой класс в эдитор неймспейсе заменит твой CellView и позволит не насиловать юнити атрибутом [ExecuteAlways]

	[UnityEditor.CustomEditor(typeof(CellView))]
    public class CellViewEditor : UnityEditor.Editor
    {
        [DrawGizmo(GizmoType.Active | GizmoType.Pickable | GizmoType.NonSelected)]
        public static void RenderGizmo(CellView view, GizmoType gizmo)
        {
        		Gizmos.color = ((gizmo & GizmoType.Selected) != 0) ? Color.green : Color.cyan;
 						//...твой скрипт отрисовки
        }
    }

Спасибо.

Ну инжект в системы внедряет все данные сразу во все экземпляры систем.

Насчет CellView, там атрибуты под дефайном и будут работать только в редакторе, так что по идее норм. Вообще, скорее всего стоит разделить компонент на два: один отвечает за снап, другой за отрисовку клеток, так как магнитить к сетке нужно будет, скорее всего, не только клетки.

Добрый день! Спасибо за статью! У меня такой вопрос. А для чего предназначен в вашей системе класс Пул компонентов?

Добрый вечер. Рад, что понравилось.

Пул компонентов дает возможность добавлять компоненты к сущности или удалять их. Рекомендую прочитать README в репозитории https://github.com/Leopotam/ecslite

Sign up to leave a comment.

Articles