脱出ゲーム始めました!

Unityで作った脱出ゲームを公開しています。拙い作品ですが暇つぶしにでも遊んでいただければ幸いです。
あわせて簡単な脱出ゲームの作り方もまとめています。

Unityでの脱出ゲームの作り方・基礎編1【壁・床の設置】

自分が脱出ゲームを作る際に参考にできるサイトが少なかったので
Unityでの簡単な2D脱出ゲームの作り方をまとめていきます。

独学なので所々おかしなところもあるかと思いますが
そこは大目に見ていただければありがたいです。

今回作るのは4方に壁とドアが1つある簡単なものです。

では始めましょう。

まずゲーム画面に縦横比9:16のものを追加し変更します。
tuto1
続いて、Hierarchy を右クリック、UI>Canvasを選択します。

Canvas Scaler

UI scale ModeScale With Screen Size

Reference ResolutionX 540, Y 960

Screen Match ModeExpand にそれぞれ変更します。
tuto2
壁と床を作る作業に入ります。

まず使用する画像を用意します。

筆者がよく利用させてもらっているイラスト素材サイト
  ↓
いらすとや
イラストAC(メルアドの登録が必要)


画像が準備できたら
Assets 欄を右クリック、Import New Asset で追加します。

追加した画像は、Filter ModePoint (no filter)

Max Size
(大きいほど高画質だが処理が重くなる) を 512 に変更、

画像の外側に余白がある場合は

Sprite ModeMultiple にして切り取ってください。


壁の設置

Hierarchy で右クリック、UI>Panel を選択し、名前を wall1 に変え、
Souce Image Assets から壁用の画像をドラッグし、
color の透明度を255にします。


床の設置

wall1 を右クリックし、UI>Image を選択し、名前を floor に変えます。
Souce Image Assets から床用の画像をドラッグし、
Anchor Presets bottom , stretch にし
left , rightを 0
Pos Y を 100
Height を 200
に設定します。


tuto3
今回は以上です。

壁は4枚必要ですが、今回作ったものをコピーして使います。






Unityでの脱出ゲームの作り方・応用編2【文字が徐々に浮かび上がり消えていくようにする】

ゲームのオープニングなどでよく使われる技法です。

※参考画像
sindo1
      ↓
sindo2

テキストに以下のスクリプトを取り付けます。
   ↓
C#

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

public class fadeinout : MonoBehaviour {

    float alfa = 0;
    float speed = 0.04f;
    float red, green, blue;

    bool onetime = false;
    bool orikaesi = false;
    
    void Start ()
    {
        red = GetComponent<Text>().color.r;
        green = GetComponent<Text>().color.g;
        blue = GetComponent<Text>().color.b;
    }
 
    void Update ()
    {
        if (orikaesi == false)
        {
            GetComponent<Text>().color = new Color(red, green, blue, alfa);
            alfa += speed;
        }
        else if (orikaesi == true)
        {
            GetComponent<Text>().color = new Color(red, green, blue, alfa);
            alfa += -speed;
        }

        if (alfa > 1)
        {
            if (onetime == false)
            {
                StartCoroutine("orikaesiwait");
                onetime = true;
            }
        }
        else if (alfa < 0)
        {
            gameObject.SetActive(false);
        }
    }

    IEnumerator orikaesiwait()
    {
        yield return new WaitForSeconds(1);
        orikaesi = true;
    }
}

透明から完全に表示されるまでの時間は、float speedの数字
で、

完全に表示された状態(alfaの数値が1以上)から
薄くなり始めるまでの時間は
yield return new WaitForSeconds(1)の()内の数字
それぞれ調整できます。


また、<Text><Image>に変えれば画像でも同じことが可能です。

3作目制作中

前の記事で画像を使いましたが
現在、3作目の【お菓子の家からの脱出】を作成中です。
okasinoie1
8月中の完成を予定しています。


スポンサードリンク

スポンサードリンク
スポンサードリンク