以前ScriptableObjectの作成方法や、使い方を紹介しました。【ハルシオンブログ】UnityでScriptableObjectを作成して、使う方法の紹介。】マスタデータ的な感じで使うことが多いかと思いますが、使う上で気を付けないといけない点があるので、紹介。こんなデータを作成します。}}これで、敵のデータ作成完了。次に画面にボタンを置き、クリックすることで、敵に攻撃をする感じのを作ります。}}ボタンをクリックしたときにOnClickAttackを呼ぶようにします。調べてみると、こうなっているのが分かります。えー!マスタの値がかわってるうううううう!!!これじゃマスタとしての意味なくなってしまいます。これ、値渡しじゃなくて参照渡しだから起きちゃうんですよね。ScriptableObjectのオブジェクトを使う場合にはディープコピーにて使ってあげるといいと思います。なんかいい方法あるのかもしれませんが、今のところこんな感じでやってます。}}コピーメソッドを付けてあげます。}こんな感じでやれば、ちゃんと動くようになります。気を付けないと、マスタデータが書き換わってしまいます。いう感じで、今日はScriptableObjectを使う上での注意点でした。【ハルシオンブログ】Unityでのシーン間のデータの受け渡し...初心に戻ってみました。花粉が飛び始めた感じですね。今年もまた多いとか・・・つらい時期が始まりました。ネタが思いつかないので、初心に戻って「シーンを跨いだデータの渡し方」をやってみましょう。シーンを2つ用意します。●シーン1●シーン2やることは、「シーン1のインプットフィールドに文字を入力し、ボタンで次のシーン(シーン2)に行って、テキストにシーン1で入力した文字を出力する。1シーン間で引き継げるクラスとオブジェクトを用意する。}}上記クラスをシーン1に置きます。●シーン1受け渡す準備が完了しました。それでは、シーン1で「ボタンを押したら、インプットフィールドに入力した文字をDeliverクラスに引き渡す」をやってみましょう。}}ボタンを押した時にOnClickButtonが呼ばれるようにしておきましょう。これで、InputFieldに文字を入力したものが、DeliverClassのdeliverStringに入り、次のシーンに持ち越すことができます。それでは、シーン2の方のコードも書いてみましょう。}}シーン2の方では、Startの中でDeliverClassから値を持ってきて、Textにセットすることをしています。実際に実行すると、DeliverのオブジェクトがDontDestroyOnLoadのところにあるのが確認できると思います。これが「シーンが変わっても消えないオブジェクト」になります。これで、シーン1のInputFieldの値をシーン2に引き渡すことができます。【ハルシオンブログ】SoftMaskScriptってやつをちょっと使ってみた。