C # Оператор сдвига влево

Есть заявление, написанное моим коллегой, которое я не совсем понимаю. К сожалению, он сейчас недоступен, так что вот оно (с измененными именами, мы работаем над игрой в Unity).

private readonly int FRUIT_LAYERS =
          (1 << LayerMask.NameToLayer("Apple"))
        | (1 << LayerMask.NameToLayer("Banana"));

NameToLayer принимает строку и возвращает целое число. Я всегда видел операторы левого сдвига с постоянным целым числом справа, а не слева, и все примеры, которые я нахожу через Google, следуют этому подходу. В этом случае я думаю, что он помещает Apple и Banana в один и тот же относительный слой (который я буду использовать позже для фильтрации). В будущем будет больше "фруктов" для фильтрации. Какие-нибудь блестящие стековые потоки, которые могут дать мне объяснение, что происходит на этих линиях?

Ответы на вопрос(4)

Ваш ответ на вопрос