トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

カナヅチを取るだけの脱出ゲームを作る

なんだかんだUnityで脱出ゲームを作ってなかったので作ります。

シンプルな2D。

カギを取って、ドアをクリックするだけ!

PCはここから遊べます。

https://bibinba.github.io/escapegithub/

部屋の画像

部屋の画像はsweethomeで作りました。

f:id:bibinbaleo:20190429211428p:plain

部屋は適当に家具を置いただけ。レンダリングは最高画質で

f:id:bibinbaleo:20190429211526p:plain

bibinbaleo.hatenablog.com

音はOn-Jin様から

https://on-jin.com/sound/sei.php

部屋の遷移

右端or左端を押したら部屋の画像が変わるようにします。

f:id:bibinbaleo:20190429195734p:plain

Canvasにimageを置いて、そのspriteRenderを変更します。

f:id:bibinbaleo:20190429195742p:plain

https://uni.gas.mixh.jp/unity/canvas-text-image.html

こんな感じ

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class button : MonoBehaviour
{
    public Image image;
    public Sprite[]room= new Sprite[4];


    int roomnow = 0;
    // Start is called before the first frame update
    void Start()
    {
        image.sprite = room[roomnow];
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void OnRightButton()
    {
        if (0<=roomnow&& roomnow <= 2)
        {
            roomnow++;
        }
        else if (roomnow == 3)
        {
            roomnow = 0;
        }

        image.sprite = room[roomnow];
        Debug.Log(roomnow);
    }

    public void OnLeftButton()
    {
       
        if (1 <= roomnow && roomnow <= 3)
        {
            roomnow--;
        }
        else if (roomnow == 0)
        {
            roomnow = 3;
        }
        image.sprite = room[roomnow];
        Debug.Log(roomnow);
    }
}

部屋のspriteは配列に入れた。roomnowに今の部屋番号を入れてる。

f:id:bibinbaleo:20190429195740p:plain

部屋が左右のボタンで0,1,2,3、0と遷移していくのを実装するのが大変だった。絶対もっとクールなやり方がある・・・

でも早速配列使った!!えらい!!!

bibinbaleo.hatenablog.com

鍵を取る

roomnow=鍵がある部屋のとき、鍵の場所をクリックしたら鍵が取れます。

sweethomeに鍵がなかったのでトンカチにしました。

f:id:bibinbaleo:20190429205111p:plain

カナヅチを取ったら右下に画像を表示させます。

f:id:bibinbaleo:20190430083352p:plain

3秒ぐらいで描いた。

f:id:bibinbaleo:20190430083354p:plain

部屋画像もトンカチありとなしをレンダリングしました。

f:id:bibinbaleo:20190430094447p:plain

f:id:bibinbaleo:20190430094456p:plain

カギをクリックした後は配列に鍵なしの画像を入れます。

image.sprite= roomk;
room[1] = roomk;

音が鳴ってから画面遷移させる

コルーチンというもので1.2秒ぐらい待ってもらいます。

IEnumerator End()
{
yield return new WaitForSeconds(1.2f);
SceneManager.LoadScene("End");
}

www.sawalemontea.com

Androidビルド

2019.1はAndroidにビルドがすぐできるのでしてみよう!

bibinbaleo.hatenablog.com

なかなか画面がいい感じに表示されない!

どう設定するんだっけ??

とりあえずCanvasScalarでScaleWithScreenSizeにして、ResolutionをGame画面サイズにする

f:id:bibinbaleo:20190430085839p:plain

dojican-lab.blogspot.com

あと、PlayerSeettingのResolution~のDefaultOrientationでLandscapeにすると横画面固定になる。

f:id:bibinbaleo:20190430092752p:plain

これでOK

完成

1日かからずできた。 

githubで見れるようにしました。

https://bibinba.github.io/escapegithub/

 

github

そして今回はgithubにアップしながら作りました!えらい!!!

github.com

初めてだからあんまりこまめにコミットできてないけど。

ただ途中でgithubでreadmeを作ったら、forkからpushできなくなった><

f:id:bibinbaleo:20190429211633p:plain

エラーのhintをよくみたら一度pullしてみるとかどう?って書いてたのでpullしてからpushしたらできた!!

f:id:bibinbaleo:20190429212122p:plain

うぃー!!

あとダウンロードした効果音素材はgithubにアップしてはいけないので、それの設定をしました。

フォルダに音を入れて、forkで右クリック>ignore

そうすると.gitignoreに入れてくれます。f:id:bibinbaleo:20190430072325p:plain

私と脱出ゲーム

私が一番最初に作ったゲームが脱出ゲームなんですよ!その時は高校生でflashで作りましたが。。。

そこで初めてPCで何かを作る楽しさを知った気がする。

8年ぐらいの時を経てやっとちゃんともう一度脱出ゲーム作れた!

前に一度脱出ゲーム作ろうとして、結局当たり判定のない部屋の窓から抜け出すだけの微妙な脱出ゲームができてしまった。

bibinbaleo.hatenablog.com

このときはね、初心者のくせに3Dでやろうとかいろいろこだわりすぎたんですよ!

まずは超絶シンプルに!!!

自分ができるぐらいのシンプルなゲームを作るのうまくなった気がする。

そろそろ上のステップに行ってほしい気もするけど。まあいいや!ゲーム作るのはUnityの練習みたいなものだから。

 

リアル脱出ゲームの過去問集があった。

ちゃんとしたリアル脱出ゲーム参加したことない。。。