Код: Выделить всё
public class Foo : MonoBehaviour
{
[SerializeField]
private Bar bar;
[SerializeField]
private string check;
public Bar Bar { get { return this.bar; } set { this.bar = value; } }
}
Код: Выделить всё
[Serializable]
public class Bar : ScriptableObject
{
[SerializeField]
private string data;
}
< /code>
Наконец, CustomEditor < /code>, который позволяет мне создавать и связывать экземпляр BAR < /code>: < /p>
[CustomEditor(typeof(Foo))]
public class StreamableResourceTestEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if (GUILayout.Button("Link unsaved Bar asset"))
{
Bar bar = ScriptableObject.CreateInstance();
bar.name = "Unsaved asset";
Foo foo = (Foo)this.target;
foo.Bar = bar;
EditorUtility.SetDirty(foo);
}
}
}
< /code>
перед запуском, введенные данные и нажали кнопку: < /p>
< /p>
< /p>
после работы: < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/35970662/unity-field-containing-scriptableobject-not-serializing[/url]