Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

JsonUtility.FromJsonOverwrite

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public static function FromJsonOverwrite(json: string, objectToOverwrite: object): void;
public static void FromJsonOverwrite(string json, object objectToOverwrite);

パラメーター

json オブジェクトの JSON 表現
objectToOverwrite 上書きする必要があるオブジェクト

説明

JSON を読み取り、オブジェクトのデータを上書きします。

このメソッドは JsonUtility.FromJson によく似ています。新しいオブジェクトを作成し、 JSON データをそれに読み込ませる代わりに既存のオブジェクトに JSON データを読み込こませます。クラスやオブジェクトに割り当てを行わずに格納されている値を更新することができます。

内部的には、このメソッドは Unity のシリアライザーを使用します。したがって、渡すオブジェクトをシリアライザーでサポートする必要があります。それは MonoBehaviour、ScriptableObject や Serializable 属性を適用しているプレーンのクラスや構造体である必要があります。上書きしたいフィールドのタイプはシリアライザーによってサポートされてなければなりません。private フィールド、static フィールドや NonSerialized 属性を適用しているフィールドのようにサポートされていないフィールドは無視されます。

プレーンなクラスや構造体は、MonoBehaviour や ScriptableObject から派生したクラスと同様にサポートされます。他のタイプはサポートされていません。エディターの中でのみ、 EditorJsonUtility.FromJsonOverwrite を使用して他のオブジェクトを上書きできます。

オブジェクトのフィールドが JSON 表現に存在しない場合はそのまま残されます。

このメソッドはバックグラウンドスレッドから呼び出すことができます。関数の実行中の間、上書きされているオブジェクトを変更しないでください。


        
using UnityEngine;

public class PlayerState : MonoBehaviour { public string playerName; public int lives; public float health;

public void Load(string savedData) { return JsonUtility.FromJsonOverwrite(savedData, this); }

// Given JSON input: // {"lives":3, "health":0.8} // the Load function will change the object on which it is called such that // lives == 3 and health == 0.8 // the 'playerName' field will be left unchanged

}