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 一個でしたが行列でも使い放題です。
いいことを覚えた気がします。