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.
48 lines
1.6 KiB
48 lines
1.6 KiB
1 year ago
|
namespace Mapbox.Unity.Map
|
||
|
{
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
using Mapbox.Unity.MeshGeneration.Modifiers;
|
||
|
using UnityEditor;
|
||
|
using Mapbox.Editor;
|
||
|
|
||
|
[CustomPropertyDrawer(typeof(SpawnPrefabOptions))]
|
||
|
public class SpawnPrefabOptionsDrawer : PropertyDrawer
|
||
|
{
|
||
|
static float lineHeight = EditorGUIUtility.singleLineHeight;
|
||
|
|
||
|
private GUIContent prefabContent = new GUIContent
|
||
|
{
|
||
|
text = "Prefab",
|
||
|
tooltip = "The prefab to be spawned"
|
||
|
};
|
||
|
|
||
|
private GUIContent scalePrefabContent = new GUIContent
|
||
|
{
|
||
|
text = "Scale down with world",
|
||
|
tooltip = "The prefab will scale with the map object"
|
||
|
};
|
||
|
|
||
|
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||
|
{
|
||
|
EditorGUI.BeginProperty(position, label, property);
|
||
|
position.height = 2.5f * lineHeight;
|
||
|
EditorGUI.BeginChangeCheck();
|
||
|
property.FindPropertyRelative("prefab").objectReferenceValue = EditorGUI.ObjectField(new Rect(position.x, position.y, position.width, lineHeight), prefabContent, property.FindPropertyRelative("prefab").objectReferenceValue, typeof(UnityEngine.GameObject), false);
|
||
|
position.y += lineHeight;
|
||
|
EditorGUI.PropertyField(new Rect(position.x, position.y, position.width, lineHeight), property.FindPropertyRelative("scaleDownWithWorld"), scalePrefabContent);
|
||
|
if(EditorGUI.EndChangeCheck())
|
||
|
{
|
||
|
EditorHelper.CheckForModifiedProperty(property);
|
||
|
}
|
||
|
EditorGUI.EndProperty();
|
||
|
}
|
||
|
|
||
|
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
||
|
{
|
||
|
return 2.0f * lineHeight;
|
||
|
}
|
||
|
}
|
||
|
}
|