Поле единства, содержащее ScriptableObject, не сериализацияC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Поле единства, содержащее ScriptableObject, не сериализация

Сообщение Anonymous »

У меня проблема с получением поле для правильного сериализации. Пользовательский редактор создает экземпляр этого объекта, и он не сохраняется в качестве файла активов. Насколько я понимаю, в настоящее время вы можете сделать это - Unity должно сохранение этих данных в сцене вместо проекта автоматически. Это я настроил, чтобы удерживать экземпляр стержня, и строка, просто чтобы дважды проверить сериализацию вообще. Я использую поля с раскрыванием свойств, поэтому я сделал это здесь так же хорошо, как я знаю, что задействовало отражение. < /P>

Код: Выделить всё

public class Foo : MonoBehaviour
{
[SerializeField]
private Bar bar;

[SerializeField]
private string check;

public Bar Bar { get { return this.bar; } set { this.bar = value; } }
}
Далее, класс ScriptableObject на основе . Это класс, который я хочу, чтобы экземпляр и ссылка, но не сохранять как файл активов. < /P>

Код: Выделить всё

[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]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»