Как стать автором
Обновить

Комментарии 5

Спасибо, в закладках, для таких чайников как я самое то.
Открыл для себя Odin Inspector, больше нет надобности в таких drawer'ах
Плагин мощный, но:
1) Для некоторых людей такое решение может показаться избыточным.
2) Платный.
Спасибо, можно примеры использования?
Навскидку, флаги можно использовать в качестве тегов. Допустим есть игра в жанре Match3. Элементы на поле могут иметь различные свойства: возможность уничтожения, объединения с другими фишками, способность к перемещению и т.д.

[Flags]
public enum Tag
{
    Breakable = 1,
    Mergeable = 2,
    Movable = 4,
}

public sealed class Chip : MonoBehaviour
{
    [SerializeField]
    private Tag _tag;

    public bool HasTag(Tag tag) => _tag.HasFlag(tag);
}


Без флагов подобный функционал будет выглядеть чуть более объёмным и для внесения изменений потребуется больше телодвижений.

public sealed class Chip : MonoBehaviour
{
    [SerializeField]
    private bool _breakable;

    [SerializeField]
    private bool _mergeable;

    [SerializeField]
    private bool _movable;

    public bool IsBreakable => _breakable;

    public bool IsMergeable => _mergeable;

    public bool IsMovable => _movable;
}


Ещё флаги можно использовать для оптимизаций, используя их вместо проверки существования компонента на объекте через GetComponent().
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации