【Unity】ScriptableObjectを使ってみた
ScriptableObjectの作り方について備忘録。
まずScriptableObjectを継承したクラスを作ります。
[CreateAssetMenu]を付与してエディタ上でScriptableObjectを作成できるようにします。
BallData.cs
using UnityEngine; [CreateAssetMenu(menuName ="ScriptableObject/Ball")] public class BallData : ScriptableObject { public int speed; public int maxhp; public int power; }
Project上右クリックで先ほど定義したScriptableObjectを作成します。
作成したScriptableObjectはInspecter上で編集できます。
作ったScriptableObjectを実際に使ってみます。
BallDataをpublicで宣言して先ほど作ったScriptableObjectをアタッチします。(privateでSerializeFieldにするのでもいいです)
Ball.cs
using UnityEngine; public class Ball : MonoBehaviour { public Rigidbody rigidbody; public BallData ballData; private void Start () { rigidbody.velocity += Vector3.forward * ballData.speed; } }
これで動けばもんだいなしです。