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.
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|