Объявление
public static int LayerField(Rect position, int layer, GUIStyle style = EditorStyles.popup);public static int LayerField(Rect position, string label, int layer, GUIStyle style = EditorStyles.popup);
public static int LayerField(Rect position, GUIContent label, int layer, GUIStyle style = EditorStyles.popup);
Параметры
position | Прямоугольник на экране для использования в качестве поля. |
label | Необязательная метка перед полем. |
layer | Слой показан в поле. |
style | Необязательный стиль GUIStyle. |
Возвращает
int Слой, выбранный пользователем.
Описание
Создает поле выбора слоя.

using UnityEngine;
using UnityEditor;
// Изменить тег и/или слой выбранных игровых объектов.
class EditorGUITagLayerField : EditorWindow
{
string selectedTag = "";
int selectedLayer = 0;
[MenuItem("Examples/Tag - Layer for Selection")]
static void Init()
{
var window = GetWindow();
window.position = new Rect(0, 0, 350, 70);
window.Show();
}
void OnGUI()
{
selectedTag = EditorGUI.TagField(
new Rect(3, 3, position.width / 2 - 6, 20),
"New Tag:",
selectedTag);
selectedLayer = EditorGUI.LayerField(
new Rect(position.width / 2 + 3, 3, position.width / 2 - 6, 20),
"New Layer:",
selectedLayer);
if (Selection.activeGameObject)
{
if (GUI.Button(new Rect(3, 25, 90, 17), "Change Tags"))
{
foreach (GameObject go in Selection.gameObjects)
{
go.tag = selectedTag;
}
}
if (GUI.Button(new Rect(position.width - 96, 25, 90, 17), "Change Layers"))
{
foreach (GameObject go in Selection.gameObjects)
{
go.layer = selectedLayer;
}
}
}
}
void OnInspectorUpdate()
{
Repaint();
}
}