Unity/ScriptableObject
提供: 初心者エンジニアの簡易メモ
ScriptableObjectとは
.assetのファイルで、共有データを格納するファイル、データが、inspectorで表示されるので確認しやすい。
ScriptableObjectファイルの作成方法
以下Editorを使って作る
using UnityEditor;
public class CreateExampleAsset : EditorWindow
{
[MenuItem("Example/Create ExampleAsset")]
public static void Start()
{
var exampleAsset = CreateInstance<ExampleData>();
AssetDatabase.CreateAsset(exampleAsset, "Assets/Resources/ExampleSetting.asset");
AssetDatabase.Refresh();
}
}
メニューのExample/Create ExampleAssetを選択すると Resources/ExampleAsset.assetが作成される。
参考:http://49.233.81.186/scriptableobject.html
使い方
MainScene.cs
public class MainScene : MonoBehaviour
{
ExampleData exampleData;
void Start()
{
exampleData = Resources.Load<ExampleData>("ExampleSetting");
Debug.Log(exampleData.count);
Debug.Log(exampleData.msg);
}
}
ExampleData.cs
using UnityEngine;
public class ExampleData : ScriptableObject
{
public int count;
public string msg;
}
参考:https://tsubakit1.hateblo.jp/entry/20140322/1395476579
保存
using UnityEngine;
using UnityEditor;
public class CustomMenu
{
[MenuItem("CustomMenu/Save %i")]
private static void Save()
{
ExampleData exampleData = Resources.Load<ExampleData>("ExampleSetting");
//exampleData.count = 1000;
EditorUtility.SetDirty(exampleData);
AssetDatabase.SaveAssets();
}
}
