「Unity/ScriptableObject」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→使い方) |
|||
行14: | 行14: | ||
var exampleAsset = CreateInstance<TestData>(); | var exampleAsset = CreateInstance<TestData>(); | ||
− | AssetDatabase.CreateAsset(exampleAsset, "Assets/Resources/ | + | AssetDatabase.CreateAsset(exampleAsset, "Assets/Resources/ExampleSetting.asset"); |
AssetDatabase.Refresh(); | AssetDatabase.Refresh(); | ||
} | } | ||
行32: | 行32: | ||
void Start() | void Start() | ||
{ | { | ||
− | testData = Resources.Load<TestData>(" | + | testData = Resources.Load<TestData>("ExampleSetting"); |
Debug.Log(testData.count); | Debug.Log(testData.count); | ||
Debug.Log(testData.msg); | Debug.Log(testData.msg); |
2021年6月23日 (水) 18:53時点における版
ScriptableObjectとは
.assetのファイル
ScriptableObjectの作成方法
以下Editorを使って作る
using UnityEditor; public class CreateExampleAsset : EditorWindow { [MenuItem("Example/Create ExampleAsset")] public static void Start() { var exampleAsset = CreateInstance<TestData>(); 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 { public TestData testData; void Start() { testData = Resources.Load<TestData>("ExampleSetting"); Debug.Log(testData.count); Debug.Log(testData.msg); } }
TestData.cs
using UnityEngine; public class TestData : ScriptableObject { public int count; public string msg; public virtual string GetMessage() { return null; } }