void OnGUI() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("Create a voxel prefab from a 2D texture.", MessageType.Info); EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Texture", GUILayout.Width(120)); EditorGUI.BeginChangeCheck(); texture = (Texture2D)EditorGUILayout.ObjectField(texture, typeof(Texture2D), false); if (EditorGUI.EndChangeCheck()) { if (texture != null) { VoxelPlayEditorCommons.CheckImportSettings(texture, true); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(new GUIContent("Size", "Size of the resulting prefab."), GUILayout.Width(120)); size = EditorGUILayout.Vector3Field("", size); EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); GUI.enabled = texture != null; EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Generate Prefab")) { GeneratePrefab(); GUIUtility.ExitGUI(); } if (GUILayout.Button("Generate Item Definition")) { GenerateItemDefinitionAsset(); GUIUtility.ExitGUI(); } GUI.enabled = false; EditorGUILayout.EndHorizontal(); }
void TextureField(SerializedProperty texture, string label = null, string tooltip = null) { EditorGUI.BeginChangeCheck(); if (label != null) { EditorGUILayout.PropertyField(texture, new GUIContent(label, tooltip)); } else { EditorGUILayout.PropertyField(texture); } if (EditorGUI.EndChangeCheck()) { if (texture.objectReferenceValue != null) { Texture textureAsset = (Texture)texture.objectReferenceValue; VoxelPlayEditorCommons.CheckImportSettings(textureAsset); } } }