閃光絵巻ラボ

脱出ゲームの作り方などの技術系のブログです。

Unityで脱出ゲームの作り方(5)「3Dオブジェクトをクリックで取得」

      2015/08/02

20150531120526222+

これまでのパートでUIボタンのクリックはできました。
このパートでは上の画像の、3Dの赤スイッチを押せるようにします。

3Dオブジェクトをクリック判定する

3Dオブジェクトをクリック判定するには、クリック動作を検出しなければなりません。

下準備です。クリック検出させるためのレイヤーを作ります。(後にスイッチをそのレイヤーに入れます)
右上辺りのLayers > Edit Layersを選択し、
20150531120544218+

User Layer 8に新しいレイヤーの名前を入れます。(8でなくてもOKです)
名前は自由ですが、ここでは「clickable」としておきます。

20150531120502219+
スイッチの3DオブジェクトにComponent > Physics > Box Colliderをいれて名前をredSwitchとかにします。
Box Colliderを追加すると黄緑の線の箱ができ、これがコライダー(当たり判定)になります。
20150531120526222+
そしてredSwitchのレイヤーをclickableにします。
20150531120539223+

それではクリックを判定するC#を書いていきます。

 

今回もちょっと難し目ですね( ;^ω^)
ray(光線)が新たに登場です。このrayはクリックしたところからまっすぐレーザーのように撃たれ、最初に当たったオブジェクトを取得します。これが3Dオブジェクトの取得の仕方ですね。

searchRoomというvoidを用意し、レイを飛ばします

 

ここの「8」という数字が重要です。さきほど作った「clickable」レイヤーは8番目のレイヤーでしたね。なので8を入れると、レイは8番目のレイヤーにあるオブジェクトにぶつかります。

 

ここでぶつかったオブジェクトが何なのかはhit.collider.gameObjectで取得できます。ここではselectedGameObjectに代入しました。

 

あとはselectedGameObject.nameでswicth文を作れば処理を書き分けられます。

プレビューで赤スイッチをクリックし、デバッグに「レッドスイッチを押した」と出れば成功です。
20150531200514226+

 

 

スイッチクリックでカギを出す

赤スイッチをクリックでカギが出てくるようにしましょう。
カギの3Dオブジェクトを用意してUnityに読み込みます。(3Dオブジェクトの追加方法はその1,その2を参考にしてください)

↓このへんに置きました。
20150531200514226++

カギは開始時には非表示にしておく必要がありますね。どうやって非表示にしましょう?

1つはインスペクターのチェックマークを外す方法ですが…
20150531200520228+これを開始後にGameObject.Find(“key”).SetActive(true);で表示させようとするとエラーになってしまいます。
はじめから消えているオブジェクトはGameObject.Findが使えないんです。
なのであらかじめカギは変数に入れておいてゲーム開始と同時に非表示にします。

これで赤スイッチをクリックするとカギがパッと出てきます。
これでも十分OKなのですが、ちょっと動きが物足りないかも?
カギが天井から降ってくるなど、アニメーションが付いてるともっとゲームらしくなりますよね。
それを次回でやってみましょう。

 »第6回へ続く

 - Unityで脱出ゲームの作り方

タグ

タグ

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  関連記事

20150419140443163
Unityで脱出ゲームの作り方(1)「3Dの部屋を作る」

Unityで脱出ゲーム講座 初回は3Dの部屋づくりからはじめます。 このパートで …

20150617230620234+
Unityで脱出ゲームの作り方(6)「物体を滑らかにアニメーションで動かす」

第6回は物体のなめらかなアニメーション(トゥイーン)を実装します。 脱出ゲームに …

20150628160625244+
Unityで脱出ゲームの作り方(7)「アイテムリストを作る」

前回まででスイッチを押すとカギが降ってくるようにしました。 ここで落ちてきたカギ …

20150702150755252+
Unityで脱出ゲームの作り方(8)「アイテムを選択(装備)する」

アイテムリストクリックでアイテムを装備する アイテムリストのカギをクリックしたら …

20150507120541179+
Unityで脱出ゲームの作り方(2)「UnityにSketchupの3Dの部屋をインポート」

第2回からはUnityという今話題のゲーム作成ソフトを使っていきます。 とても高 …

20150510100521211+
Unityで脱出ゲームの作り方(3)「部屋の中を移動する・下準備編」

このパートでは脱出ゲーム定番の移動ボタンを追加します。 画面上に固定で表示するU …

20150510100521211+
Unityで脱出ゲームの作り方(4)「部屋の中を移動する・UIでカメラ回転編」

第4回はカメラ回転のスクリプトを実際に書いていきます。 上の画像のようにぐるりと …