コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】ゲームオブジェクトにアタッチされているすべての MonoBehaviour の情報を JSON で出力する方法

概要

using System.Linq;
using UnityEngine;

public class Example : MonoBehaviour
{
    private void Start()
    {
        var list = GetComponents<MonoBehaviour>()
            .Select( c => JsonUtility.ToJson( c, true ) )
        ;

        var str = string.Join( "\n", list );

        Debug.Log( str );
    }
}

上記のようなコードを記述する

using UnityEngine;

public class Example1 : MonoBehaviour
{
    public int      m_id        ;
    public string   m_name      ;
    public float    m_height    ;
    public float    m_weight    ;
}

例えばこのようなスクリプトがアタッチされている場合

{
    "m_id": 25,
    "m_name": "ピカチュウ",
    "m_height": 0.4000000059604645,
    "m_weight": 6.0
}

こんな感じで JSON が出力されます