以前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に引き渡すことができます。【ハルシオンブログ】タイルマップを使ってみた。意外と簡単にできるんすね。こんにちは!坂内っす。次の日曜日にはデジゲー2018っすね!ブースの皆さん頑張って準備してくださいな!さてさて、本日のUnityのお話はタイルマップについて。Unity2017.2くらい?から導入されたタイルマップなんですが、今まで触ってもなかったので、ここで触ってみようかなと。tile)は、建設資材の一つで、壁や床の保護、あるいは装飾用に多数張りつける板状のもの。+地図、マップってことで、ゲームの画面をタイルで並べるように作る機能のようです。アセットストアにもいろいろとタイルマップで使えるマップチップのアセットがあるようです。今回はこれを使ってみました。タイルパレットを作成します。あ、ちなみに使用しているUnityは2018.2.1です。Paletteを選択するとウインドウが出てきます。Palette」を押して、Nameにパレット名を入力し、「Create」を選択。すると、今付けた名前のパレットプレハブができます。次に使用するテクスチャを選択し、設定します。今回はこれを使ってみましょう。Bricksってファイルです。Modeを「Multiple」に変更します。Unitの数値をタイルのサイズにします。チップが16x16だった場合は16を入力します。PixelSizeを32,32に設定し「Slice」ボタンを押す。テクスチャが32x32で白い線で切られると思います。これでウインドウの右上にあるxを押してApply。これで、テクスチャの準備は完了です。次に、今のBrickファイルをTilePaletteウインドウにドラッグ&ドロップします。次にタイルマップを画面に置いてみましょう。Object」⇒「Tilemap」を選択します。すると、Hierarchyに「Grid」というオブジェクトが作成されます。このGridを選択すると、Sceneウインドウに白い線が出るようになります。この状態で、TilePaletteで好きなチップを選択、クリックやドラッグでタイルを配置できます。Shift+ドラッグ(クリック)で削除できます。"「"ボタン、"」"ボタンを押すことでタイルを回転できます。このままだとこうなっちゃいます。コライダーが付いていないのですり抜けちゃう!コライダーの付け方は簡単です。Hierarchyにある「Tilemap」に「TilemapCollider2D」を付けます。これでキャラがちゃんとぶつかるようになります。【ハルシオンブログ】DoTweenのSequenceにOnCompleteつけてやりたいんだけど、うまくいかなかったんよ。結果できました!こんにちは!くっそ暑い日が続いてますね!部屋から出たら死にそうになります。本日はDoTweenの話。DoTweenのSequenceって皆さんお使いになられてますか?簡単に連続してTweenができる優れもの。こんな感じにImageを並べてこんな感じにコードを書けば。DoTweenのTweenスタート時、Tween終了時に処理を加えることができます。}}OnStartはちゃんと入るのですが、OnCompleteを書こうとすると、エラーになって書けない...書き方がいけないのかな?ここじゃない?ここ?ここも違う?どこ?ここも違う!!こうなったら先生がゴロゴロしているツイッターにきいてやれ!で、先生がいうには。}}こんな書き方できるらしいっす。これで、シーケンス使ったDoTweenで、最初や最後に別関数を呼べますね!それでは今日はこれくらいでお暇します。(02/20)【ハルシオンブログ】Foreachで回している元の配列等の要素を消したかったけどエラーがでたので、こうしたよ。(02/17)【ハルシオンブログ】型スイッチのお話。http://flaw.blog80.fc2.com。