【Unity】Dictionary型をインスペクターで表示させたい
UnityエディタでDictionary型の変数をインスペクターに直接表示させることは、Unityの標準機能ではサポートされていません。しかし、カスタムエディタスクリプトを使用することで、インスペクターにDictionaryを表示させることができます。
以下は、Dictionaryをインスペクターで表示するための一般的なアプローチです:
Dictionary型をインスペクターに表示させる
Serializableなクラスを作成する
UnityはSerializable属性がついたクラスのみをインスペクターに表示します。まず、キーと値のペアを保持するためのシンプルなクラスを作成します。
Listを使用する
キーと値のペアを保持するクラスのリストを作成し、このリストを使ってインスペクターで編集可能にします。
以下に、C#での具体的なコード例を示します
using System;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class SerializableDictionary : MonoBehaviour
{
[Serializable]
public class Entry
{
public string Key;
public int Value;
}
public List<Entry> entries = new List<Entry>();
private Dictionary<string, int> myDictionary;
void Awake()
{
myDictionary = new Dictionary<string, int>();
foreach (Entry entry in entries)
{
myDictionary.Add(entry.Key, entry.Value);
}
}
}
このスクリプトでは、Entry
クラスがキーと値のペアを表し、これをリストとして保持しています。Awake
メソッド内で、このリストから実際のDictionary
を構築しています。
この方法では、Unityのインスペクター上でキーと値のペアを直接編集することが可能になり、ゲームの実行時にこれらのデータをDictionaryとして使用できます。
ディスカッション
コメント一覧
まだ、コメントがありません