Я создал объект и редактировал его с помощью специального редактора. Частные переменные редактируются через SerializedProperties
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.UI;
using UnityEditor;
using UnityEngine.Video;
[CustomEditor(typeof(StreamVideo))]
public class StreamVideoEditor : Editor
{
StreamVideo script;
private SerializedProperty _playOnAwake;
private SerializedProperty _hideObjectOnStart;
private SerializedProperty _loop;
private SerializedProperty _Object2hide;
private SerializedProperty _volume;
protected virtual void OnEnable()
{
script = (StreamVideo)target;
_playOnAwake = serializedObject.FindProperty("playOnAwake");
_hideObjectOnStart = serializedObject.FindProperty("HideObjectOnStart");
_loop = serializedObject.FindProperty("loop");
_Object2hide = serializedObject.FindProperty("ObjectToHide");
_volume = serializedObject.FindProperty("Volume");
RequiresConstantRepaint();
}
public override void OnInspectorGUI()
{
serializedObject.Update();
_playOnAwake.boolValue = EditorGUILayout.Toggle("Play on Awake", _playOnAwake.boolValue);
_hideObjectOnStart.boolValue = EditorGUILayout.Toggle("Hide Object On Start", _hideObjectOnStart.boolValue);
_loop.boolValue = EditorGUILayout.Toggle("Loop", _loop.boolValue);
if (_hideObjectOnStart.boolValue)
{
EditorGUILayout.ObjectField(_Object2hide, new GUIContent("Object to hide"));
}
...
}
}
без ошибок, и все отображается нормально НО Я не могу изменить любой объект, который определяется serializedObject. Например, я не могу изменить ни одного переключателя;
в Интернете почти нет информации об этом, кто-нибудь сталкивался с проблемой? есть какое-нибудь решение?