閃光絵巻ラボ

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

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

      2015/08/02

20150509140517194
このパートでは脱出ゲーム定番の移動ボタンを追加します。
画面上に固定で表示するUIの作成がメインです。
後半ではいよいスクリプトファイルも扱い始めます。

 

 

左右回転ボタンを追加しよう

脱出ゲームによくある左右ボタン。ひとまず左ボタンだけを画面に配置してみましょう。
20150509140517194

GameObject > UI > Canvasでcanvasを作ります。キャンバスとは、体力ゲージとか所持金などの”UI”を表示するものです。
20150509140508197

 

UIの左右ボタンを追加します
assetの中に予め用意したボタンの画像を入れます。
20150509150511198
画像をクリックし、InspectorのTexture Typeを「Sprite(2D and UI)」にし、Applyを押して決定します。
(これをしないと画像をUIボタンに割り当てることができません)
20150509150527199+

GameObject > UI > Buttonで、UIボタンを新規作成します。
20150509150547200

作ったボタンは自動でヒエラルキーのCanvasの入れ子になります。このボタンは「turnLBtn」という名前にします。
20150510100543206+
turnLBtnのSource Imageに、ドラッグアンドドロップ します。これでボタンの画像は左回転ボタンになりました。
20150510100515205+
画面に表示はされましたが、サイズが合ってなかったり、よく見ると余計な文字が入っていたりするので正しくしましょう。20150510100520207+
ボタンの中にデフォルトで付いてくるTexは今回はいらないので削除します。
インペクターのPreserve Aspect, Set Native Sizeにチェックを入れると正しいサイズになります。
20150510100552210+
あとはPosXとPosYで位置を調整すれば、理想的な左回転ボタンになります。
20150510100521211+

 

スクリプトファイルを追加しよう

ここからスクリプトを書いていきます。ちょっとだけ難しくなるよ!
UnityでのスクリプトはC#とjavascriptの2つがありますが、メジャーなのはC#のようですのでここではC#を使います。javascriptと比べても別に難しくはないはずなので・・!

Assetsの中にcsフォルダを作り(任意)、csフォルダを開いた状態にして、右クリック > create > C# scriptでC#スクリプトを作成します。
名前はひとまずGameSystem.csとしておきます。ゲームの根幹となるスクリプトです。

20150510170541212+

ダブルクリックするとMonoDevelopperというソフトが開いてスクリプトを編集できるようになります。
(僕はSublime Textを使っていますが・・使い慣れたテキストエディタで大丈夫です)

20150510170551213
GameSystem.csをはじめて開くとこうなっていますね

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

 

この「public Class」のうしろの「NewBehaviourScript」 をファイル名と同じ名前にします。(下のコードでハイライトになっているところです)

using UnityEngine;
using System.Collections;

public class GameSystem: MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

 

Unityに戻り、GameObject > Create Emptyで空要素を作成します。GameObjectという名前で作成されます。

このGameObjectを選択した状態で、インスペクターの「Add Component」ボタンの下らへんにGameSystem.csをドラッグアンドドロップします。
20150510180541215+

 

 

これでGameObjectにGameSystem.csスクリプトがひも付けされたことになります。

20150510180513214+なぜこれをやったかというと、スクリプトファイルは作っただけでは”動かすひと”がいないので動きません。なのでとりあえず空のゲームオブジェクト要素に割り当てることで、GameObjectさんにはとりあえず”GameSystem.csを動かすひと”になってもらうということです。

ここまでできたら再生ボタンを押してエラーが出ないか確認します。
何も書いていないので特にゲーム内にアクションは起こりません。エラーがあるとConsoleにエラーが出てしまうのですが、何も出なければOKです。
20150510180500216

 

 

 

3Dオブジェクトを消してみる

ちょっと本題とそれますが、試しに3Dのステージを消してみましょう。消したり出したりはこの先よく使います。
void Start内に以下を追記します。

void Start () {
	GameObject.Find("onsen").SetActive(false); //今回は部屋全体は「onsen」という名前
}

GameObject.Find(“名前”)でヒエラルキーにおいてあるオブジェクトを操ることができます。
SetActive(false)で非表示にします。SetActive(true)だと逆に表示させます。
これで再生ボタンを押すと、ゲームが始まった途端に3Dの部屋が消えます。
x7IEPxEXvh

 

 

»第4回へ続く

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

Message

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

  関連記事

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

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

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

これまでのパートでUIボタンのクリックはできました。 このパートでは上の画像の、 …

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

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

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

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

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

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

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

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

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

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