You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
mapbox-sdk/Unity/Editor/PropertyDrawers/MapScalingOptionsDrawer.cs

46 lines
1.4 KiB

namespace Mapbox.Editor
{
using UnityEditor;
using UnityEngine;
using Mapbox.Unity.Map;
using Mapbox.VectorTile.ExtensionMethods;
[CustomPropertyDrawer(typeof(MapScalingOptions))]
public class MapScalingOptionsDrawer : PropertyDrawer
{
static float lineHeight = EditorGUIUtility.singleLineHeight;
GUIContent[] scalingTypeContent;
bool isGUIContentSet = false;
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
var scalingType = property.FindPropertyRelative("scalingType");
var displayNames = scalingType.enumDisplayNames;
int count = scalingType.enumDisplayNames.Length;
if (!isGUIContentSet)
{
scalingTypeContent = new GUIContent[count];
for (int extIdx = 0; extIdx < count; extIdx++)
{
scalingTypeContent[extIdx] = new GUIContent
{
text = displayNames[extIdx],
tooltip = EnumExtensions.Description((MapScalingType)extIdx),
};
}
isGUIContentSet = true;
}
// Draw label.
var scalingTypeLabel = new GUIContent { text = label.text, tooltip = "Scale of map in game units.", };
scalingType.enumValueIndex = EditorGUILayout.Popup(scalingTypeLabel, scalingType.enumValueIndex, scalingTypeContent);
if ((MapScalingType)scalingType.enumValueIndex == MapScalingType.Custom)
{
position.y += lineHeight;
EditorGUILayout.PropertyField(property.FindPropertyRelative("unityTileSize"));
}
}
}
}