FC2ブログ
10 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 12

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】UnityでScriptableObjectを作成して、使う方法の紹介。なんか使いやすいように使ってください! 

こんにちは。ハルシオンシステムですっ!

UnityでScriptableObjectを使い、マスタデータ的な感じでデータを使う方法ってあるじゃないですか。

それを簡単にやってみたいと思います。

①ScriptableObjectのコードを作成

[TestData.cs]
using UnityEngine;

[CreateAssetMenu(fileName = "TestData",menuName = "ScriptableObjects/MakeTestData")]
public class TestData : ScriptableObject
{
public int testNo;
public string testName;
public int testAge;
}


こんな感じで、testNo、testName、testAgeを持たせたTestDataクラスを作成します。

クラスの前にCreateAssetMenuというのがありますが、これは実際のScriptableObjectを作成する時に使う設定です。
これを書くことで、UnityのオブジェクトをCreateする場合に、menuNameに書かれた項目が出るようになります。



MakeTestDataを実行すると、以下のようなTestDataという名前のScriptableObjectができます。



②ScriptableObjectに値を入れる



こんな感じで、値を入れてみました。

③コードからScriptableObjectのデータを使用

[Script20190325.cs]
using UnityEngine;

public class Script20190325 : MonoBehaviour
{
[SerializeField]
private TestData testData;

void Start()
{
Debug.Log(testData.testNo + " : " + testData.testName + " ; " + testData.testAge);
}
}


TestDataには先ほど作成した、ScriptableObjectをアサインします。




これで実行すると、こうなる。


(みずらい!)

こんな感じでScriptableObjectは用意し、使うことができます。


マスタデータのように使うんだったら、ScriptableObjectの方はこんな感じにした方がいいと思いますが。

[TestData.cs]
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName = "TestData",menuName = "ScriptableObjects/MakeTestData")]
public class TestData : ScriptableObject
{
public List<TestEachData> testDatas = new List<TestEachData>();

[System.Serializable]
public class TestEachData {
public int testNo;
public string testName;
public int testAge;
}
}


こうすることで、Listとして管理できます。



使う時はこうですね。

[Script20190325.cs]
using UnityEngine;

public class Script20190325 : MonoBehaviour
{
[SerializeField]
private TestData testData;

void Start()
{
foreach(TestData.TestEachData data in testData.testDatas) {
Debug.Log(data.testNo + " : " + data.testName + " ; " + data.testAge);
}
}
}




まぁ好きなように使ってやってください。

ということで、ScriptableObjectの作り方と使い方の紹介でした!

あでゅ~ノシ
スポンサーサイト



Category: 開発日記(Unity)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/587-8d838000
この記事にトラックバックする(FC2ブログユーザー)