こんにちは。スタジオ長介です。
UnityのBoltを使っての『玉転がしチュートリアル』をスキマ時間に進めています。今回は、「オブジェクトの追加」をやっていきます。
BoltはUnityで使えるビジュアルスクリプティングツールです。UE4の「ブループリント」のようなものですね。以前は、UnityのAssetStoreで有料アセットとして販売されていましたが、Unityが製品を買収し、7月22日に無償化が発表されました。
・Unity入門チュートリアル 「玉転がし」(Roll-a-Ball) ビジュアルスクリプティング版
前回はキャラクターの動きを追跡するタイプのカメラを設定しました。
今回はよりゲームらしい「遊び」を実現するために、プレイヤーである玉に接触すると消えるアイテムを設置していきます。
「Item」オブジェクトをプレハブ化して、それをシーンの方にバラバラに配置していきます。
PlayerとItemの接触判定を作るために、ItemオブジェクトにFlow Maschine(Bolt)を追加します。今回は、接触したときに物理的な反動は必要ないので、スルッと抜けられるように接触の判定をみるためだけの「OnTriggerEnter」ユニットを使用するそうです。
Playerとの接触判定は特定のタグだけに処理を通すようにするために、Component.CompareTagユニットを使うそうです。
Playerタグを検索するので、ユニットの値に「Player」と入力します。タグ検索の結果を受けて、処理を分岐させるためのBranchユニットを追加して線で結んだものが下の図となります。
次にヒエラルキービューのPlayerのタグを変更します。長年Unityを使った開発をしてきましたが、プランナーがこのタグの部分を設定することはまずないので、なんだか新鮮です。
接触したアイテムは画面から消えてほしいので、オブジェクトを削除する処理を追加していきます。プログラムに疎いので常識的なことかもしれませんが、削除する対象を指定するためにselfユニットを設定するたびに、頭の中で『俺やで〜』という謎の声が聞こえます。
最後に、今のままだとFlow Maschineを追加したItemオブジェクトしか接触しても削除されませんので、他のオブジェクトにも同じ処理が通るようにします。ここからはUnityの作法というか、よくある対応となります。
ItemのインスペクタービューでOverridesボタンを押したあとに、Apply Allを押します。(このとき、心の中で「アプライっ!」と叫びます)
そして、完成したのが下の動画となります。
▼プレイヤーがアイテムに接触すると削除されるように
Itemオブジェクトが小さくてテストプレイに四苦八苦しましたが、処理自体は問題なく実装できていました。
使ったユニットはたったの5つだけ。コードで書いてもあっさり終わるのかもしれませんが、この手軽さは素晴らしいですね。