Я делал свой собственный редактор сценариев с SerializedProperty
переменными, но получил следующую ошибку:
type is not a supported int value
UnityEditor.SerializedProperty:get_boolValue()
Причина, по которой я использовал типы переменных SerializedProperty
, заключается в том, что я использую сценарий на префабе, что может вызвать некоторые проблемы с переопределением параметров.
Вот мой скрипт редактора:
using UnityEditor;
using UnityEngine;
using sp = UnityEditor.SerializedProperty;
[CustomEditor (typeof (ScriptName))]
public class SwitchableObjectEditor : Editor {
SerializedProperty usePanel, morningHint;
protected virtual void OnEnable () {
usePanel = serializedObject.FindProperty ("morningHint");
morningHint = serializedObject.FindProperty ("morningHint");
}
public override void OnInspectorGUI () {
if (UnityEditor.EditorApplication.isPlaying)
return;
ScriptName s = (ScriptName) target;
usePanel.boolValue = EditorGUILayout.Toggle (usePanel.boolValue);
morningHint.stringValue = EditorGUILayout.TextArea (morningHint.stringValue);
this.serializedObject.ApplyModifiedProperties ();
}
}
Я был разочарован, потому что переменная morningHint работала нормально.