脱出ゲーム始めました!

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

4作目制作中

4作目は、海外の方にもプレイしていただくことも考慮して
オブジェクトを調べた際に表示されるテキストを無くし
その分、謎解きを増やしてみようと思います。

sikikeika
タイトルはFour seasons room(四季の部屋)】
部屋の四方がそれぞれ春夏秋冬になっている
部屋から脱出するゲームです。

Unityでの脱出ゲームの作り方・基礎編その10【イベントを1度しか発生させないようにする】

トリガーとなるオブジェクトなどがイベント発生で消えてしまう場合
(アイテムをタップして入手する場合など)には問題がありませんが、

残り続けるなどして、意図せずに何度も同じイベントが
起きてしまうのはまずいですね。

そのような場合には bool を使います。

以下、ボタンを押した際、最初の1回だけ音が鳴るスクリプトです。


C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class onseiscript : MonoBehaviour {

    private AudioSource audioSource;

    public AudioClip koukaon;

    bool onlyonetime = false;
   
 // Use this for initialization
 void Start () {

        audioSource = gameObject.GetComponent<AudioSource>();
    }

    public void buttontap()
    {
        if (onlyonetime == false)
        {
            audioSource.PlayOneShot(koukaon);
            onlyonetime = true;
        }
    }
}

イベントの発生条件に bool を入れ、発生と同時に true, false

切り替えることで同じイベントは発生しなくなります。




Unityでの脱出ゲームの作り方・基礎編その9【時間を遅らせて実行するには】

コルーチンを使います。

以下、ボタンを押したら3秒後にオブジェクトが表示され、
さらに3秒経つと消える
ようにするスクリプトです。


C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

    public GameObject gameObjectA;

    public void buttontap()
    {
        StartCoroutine("coroutineA");
    }

    IEnumerator coroutineA()
    {
        yield return new WaitForSeconds(3);
        gameObjectA.SetActive(true);

        yield return new WaitForSeconds(3);
        gameObjectA.SetActive(false);
    }
}

gameObjectA はあらかじめ非表示にしておいてください。

StartCoroutine("コルーチン名
"); でカウントを開始、

IEnumerator コルーチン名()
    {
        yield return new WaitForSeconds( );    

    }

() 内に時間を秒数で入れ、(少数の場合は後ろに f を付ける)
その下に命令を書き込んでいきます。


あまり使うことはないかもしれませんが、

StopCoroutine("コルーチン名");


実行中の命令をキャンセルすることも可能です。

スポンサードリンク

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