見出し画像

HitCoutをScriptableObjectで

エンディング画面で結果を表示するためにデータの受け渡しをするのですが、Static Int  はあまり良いやり方ではないと散見されます。
では何が良いのかとみるとどうもスクリプタブル オブジェクトが良いらしいとのことです。
で、ちょっとやってみました。
これは、楽でよいですね。
パラメーターが一元管理できます。
シーンが変わっても同じ。
FindObjectもGetComponentも不要。
パラメーターを使用しているオブジェクトのInspectorを見れば参照元がみえる。(もちろん[Seriarize]ScriptableObject; を使っています)

比較的わかりやすかった参考サイトはこちらでした。

それとこちら


最初に引っかかったのは、Assetに ScriptableObjectを作る(インスタンス化する、用語があってるか不安ですが)部分でした。
C#スクリプトを作る。ここで [CreateAssetMenu] の1行を忘れない、これが大事。
保存する。

その次に、Assetホルダーの適当な場所、例えばScriptsほるだー内で、右クリックするとCreate→C#の上に今保存したスクリプトの名前がある!これを選択する。
すると◇にカッコつきのアイコンが現れます。
これか?これだ!

あとは、スクリプタブルオブジェクトのスクリプトに例えば、
public int hitNo;
として hitNo を共有できるようにします。

参照する側に
[SerializeField] privatScriptableobject dataSet ;
private int hitNoGet;
hitNoGet = dataSet.hitNo ;

と記述/保存するとオブジェクトのInspectorで空箱が出ますので、そこに先ほどの新しいアイコンがついたobjectをドロップ。
  
うれしいのは参照する側が上の3行だけなんですね。
しかもメモリーも節約できるらしい。
今回はint 一個でしたが行列でも使い放題です。

いいことを覚えた気がします。

いいなと思ったら応援しよう!