/// <summary>
        ///     Draws a LayerMask field with the given style.
        /// </summary>
        /// <param name="position">Position.</param>
        /// <param name="label">Label.</param>
        /// <param name="prop">Property.</param>
        /// <param name="style">Style.</param>
        public static void LayerMaskField(Rect position, GUIContent label, SerializedProperty prop, GUIStyle style)
        {
            label = EditorGUI.BeginProperty(position, label, prop);

            EditorGUI.BeginChangeCheck();

            LayerMaskUtils.GetMaskFieldNames(ref s_LayerNames);
            int mappedMask = LayerMaskUtils.MapToMaskField(prop.intValue);

            mappedMask = EditorGUI.MaskField(position, label, mappedMask, s_LayerNames, style);

            if (EditorGUI.EndChangeCheck())
            {
                LayerMask newMask = LayerMaskUtils.MapFromMaskField(mappedMask);
                prop.SetMask(newMask);
            }

            EditorGUI.EndProperty();
        }