こんにちは。
佐藤です。
今回はUnityでゲームを作るの第4回になります。
この連載記事も終わりに近づいてきました!
軽い気持ちで連載企画をしてしまって後悔。。
とりあえず、前回の記事を見ておさらいしましょう!
前回を見ていないという方、詳しく!!という方は下記から飛べますのでお読みください。
前回まででプレイヤーとして動かせるところまで進みました。
目次
今回は
・アイテムの追加
をやっていきます!
アイテムの追加
まずは、クリア条件となるアイテムを追加します。
ゲーム内のアイテムの動きとしては、
・ステージ内にたくさん落ちている(複数用意する必要がある)
・プレイヤーが触れると取得した状態にする(プレイヤーと接触したら消える)
Itemオブジェクトを作成します。
・ HierarchyビューのCreateをクリック。
・ ”3D Object” -> “Capsule”を クリック。
・ 生成したCapsuleを選択し名前をわかりやすく”Item”に設定。
大きすぎるので、大きさと位置を修正します。
Position:(x:0, y:1: z:0)
Scale:(x:0.5, y:0.5, z:0.5)
アイテムを量産しやすいようにProjectタブで専用のフォルダ(Prefab)を作成し、その中で管理をします。
あとで色を変えたり、複製をするときに便利になります。
・ ProjectブラウザでCreateをクリックし、Folderを選択します。
・ 新しく作成したフォルダ名をPrefabとします。
・ HierarchyビューのItemを選択します。
・ ProjectブラウザのPrefabフォルダへItemオブジェクトをドラッグ&ドロップします。
次にItemオブジェクトを複製します。
・ ProjectブラウザのPrefabフォルダのItemを選択します。
・ Sceneビューへドラッグ&ドロップします。
なんとなくで4角形になるように配置しました。(お好みの置き方でいい)
これでアイテムの配置は終了です。
今の状態でゲームを動かしてみると、プレイヤーに触れても消えません。
アイテムではなくただの障害物状態です。
ここからアイテムをアイテムらしくするためには、
プレイヤーと接触したら消えるようにする必要があります。
まずはスクリプトを作成します。
・ HierarchyビューでItemオブジェクトを選択します。
・ InspectorビューでAdd Component > “New Script”を選択します。
・ Nameに「Item」と指定し「Create And Add」ボタンをクリックします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using UnityEngine; using System.Collections; public class Item : MonoBehaviour { // トリガーとの接触時に呼ばれるコールバック void OnTriggerEnter (Collider hit) { // 接触対象はPlayerタグですか? if (hit.CompareTag ("Player")) { // このコンポーネントを持つGameObjectを破棄する Destroy(gameObject); } } } |
スクリプト内で判定方式をTriggerにしたので、Itemの設定もTriggerに設定します。
・ HierarchyビューのItemオブジェクトを選択します。
・ InspectorビューのCapsuleColliderコンポーネントのIsTriggerにチェックを入れます。
スクリプト内でPlayerタグを対象に判定を入れているので、Playerのタグを変更しましょう!
・ HierarchyビューでPlayerオブジェクトを選択します。
・ InspectorビューのTagをPlayerへ変更します。
他のアイテムたちも同じ設定を反映させます。
本当でしたら、1つ1つ変更を加えないといけないのですが、
Prefabに配置したことにより一括で変更ができます。
・ HierarchyでItemオブジェクトを選択します。
・ InspectorでApplyボタンをクリックします。
これでゲームを実行してみると、プレイヤーがアイテムに接触した瞬間に消えるようになります!
アイテム追加が出来ました。。。
終わりに
やっとここまで来ました。
次回は画面上にアイテム数を表示するUIを追加します。
あともう少しお付き合いをお願いいたします。
参照
初めてのUnity
https://unity3d.com/jp/learn/tutorials/projects/hajiuni-jp