Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

EditorJsonUtility.FromJsonOverwrite

Объявление

public static void FromJsonOverwrite(string json, object objectToOverwrite);

Параметры

json JSON-представление объекта.
objectToOverwrite Объект для перезаписи.

Описание

Перезаписать данные в объекте, прочитав его представление JSON.

Это похоже на JsonUtility.FromJsonOverwrite, но поддерживает любой объект механизма. Доступны те же поля, которые доступны через API SerializedObject или в YAML-сериализованной форме объекта.

Обратите внимание, что использование этого метода со структурой может не дать ожидаемого результата, поскольку структуры передаются методу по значению, а не по ссылке. Это означает, что вместо того, чтобы метод перезаписывал вашу исходную структуру, упакованная копия структуры передается в метод и перезаписывается. Этого можно избежать, создав собственную упакованную копию структуры для передачи в метод, а затем снова скопировав значения после возврата метода. См. пример ниже.

Даже когда вы делаете это, встроенные структуры Unity (например, Vector3 или Bounds) не могут быть напрямую переданы в метода, поэтому вы должны заключить встроенные структуры Unity в класс-оболочку или структуру.

using UnityEngine; using UnityEditor; [System.Serializable] struct MyStruct { public int value; } public class StructExample : MonoBehaviour { void Start() { MyStruct myStruct = new MyStruct(); object boxedStruct = myStruct; var json = @"{ ""value"" : 42 }"; EditorJsonUtility.FromJsonOverwrite(json, boxedStruct); myStruct = (MyStruct)boxedStruct; Debug.Log("myStruct.value = " + myStruct.value); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3