[TASK] Initial commit with basic product setup
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
namespace Mapbox.Editor
|
||||
{
|
||||
using Mapbox.Unity.MeshGeneration.Modifiers;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
[CustomPropertyDrawer(typeof(AddMonoBehavioursModifierType))]
|
||||
class AddMonoBehavioursModifierDrawer : PropertyDrawer
|
||||
{
|
||||
const int _offset = 40;
|
||||
MonoScript _monoscript;
|
||||
|
||||
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||||
{
|
||||
EditorGUI.BeginProperty(position, label, property);
|
||||
|
||||
position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
|
||||
var scriptRect = new Rect(position.x, position.y, position.width, position.height - _offset);
|
||||
var helpRect = new Rect(position.x, position.y + _offset / 2, position.width, _offset);
|
||||
var typeStringProperty = property.FindPropertyRelative("_typeString");
|
||||
var monoscriptProperty = property.FindPropertyRelative("_script");
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
|
||||
_monoscript = monoscriptProperty.objectReferenceValue as MonoScript;
|
||||
_monoscript = EditorGUI.ObjectField(scriptRect, _monoscript, typeof(MonoScript), false) as MonoScript;
|
||||
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
var type = _monoscript.GetClass();
|
||||
if (type != null && type.IsSubclassOf(typeof(MonoBehaviour)))
|
||||
{
|
||||
monoscriptProperty.objectReferenceValue = _monoscript;
|
||||
typeStringProperty.stringValue = _monoscript.GetClass().ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
monoscriptProperty.objectReferenceValue = null;
|
||||
typeStringProperty.stringValue = "";
|
||||
}
|
||||
}
|
||||
|
||||
if (monoscriptProperty.objectReferenceValue == null)
|
||||
{
|
||||
EditorGUI.HelpBox(helpRect, "Selected object is not a MonoBehaviour!", MessageType.Error);
|
||||
}
|
||||
|
||||
EditorGUI.EndProperty();
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
||||
{
|
||||
return base.GetPropertyHeight(property, label) + _offset;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user