39 lines
No EOL
1.4 KiB
C#
39 lines
No EOL
1.4 KiB
C#
//From https://answers.unity.com/questions/442342/how-to-make-public-variable-read-only-during-run-t.html
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
[CustomPropertyDrawer(typeof(BeforeStartAttribute))]
|
|
public class BeforeStartAttributeDrawer : PropertyDrawer
|
|
{
|
|
// Necessary since some properties tend to collapse smaller than their content
|
|
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
|
{
|
|
return EditorGUI.GetPropertyHeight(property, label, true);
|
|
}
|
|
|
|
// Draw a disabled property field
|
|
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
{
|
|
GUI.enabled = !Application.isPlaying;
|
|
EditorGUI.PropertyField(position, property, label, true);
|
|
GUI.enabled = true;
|
|
}
|
|
}
|
|
|
|
[CustomPropertyDrawer(typeof(AfterStartAttribute))]
|
|
public class AfterStartAttributeDrawer : PropertyDrawer
|
|
{
|
|
// Necessary since some properties tend to collapse smaller than their content
|
|
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
|
{
|
|
return EditorGUI.GetPropertyHeight(property, label, true);
|
|
}
|
|
|
|
// Draw a disabled property field
|
|
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
{
|
|
GUI.enabled = Application.isPlaying;
|
|
EditorGUI.PropertyField(position, property, label, true);
|
|
GUI.enabled = true;
|
|
}
|
|
} |