(Unity・LEGOワールドで遊ぶ)コインを集めたら扉が開く

(GateBoxの作成)

  • 新規にCubeを作成

  • 名前を「Block」に変更

  • 「Scale」で大きさ変更(大きさは自由)

  • 組み合わせて箱を作成しましょう

  • まずはここまで作りましょう!

  • ここまでできたら、パーツオブジェクトを「全部選択」して「右クリック」
  • 「Create Empty Parent」をクリック

  • 名前は「GateBox」に変更
  • 親子関係になっています。

  • 最後にデザインを考えて完成です。

  • 好きな場所に設置しましょう。

 


(扉を上に移動させる)

  • 新規にC#スクリプトを作成
  • 名前を「MoveDoor」に変更
  • 下記のコードを書いてチェック
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveDoor : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(MoveUp());
    }

    private IEnumerator MoveUp()
    {
        while (true)
        {
            Vector3 pos = transform.position;

            // 上に移動させる。
            transform.Translate(0, 0.01f, 0);

            yield return new WaitForSeconds(0.01f);

            // どの高さで止めるかは自分の世界に合わせて設定
            if (pos.y > 12.5f)
            {
                break;
            }
        }
    }
}

(設定)

  • このスクリプトは「Door」オブジェクトに追加


(実行結果)

  • 設定が完了したらゲームを再生
  • ドアがゆっくり上に開けば成功です。


(コインを集めたら扉が開くようにする)

  • 今回はコインを3枚集めたら扉が開くようにします。
  • 「CoinGet」スクリプトを開く
  • 下記「追加」部分のコードを記載してチェック
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class CoinGet : MonoBehaviour
{
    public AudioClip sound;
    public Text coinLabel;
    private int coinCount = 0;

    // 追加
    public GameObject door;

    private void Start()
    {
        coinLabel.text = "Coin " + coinCount + "枚";
    }

    private void OnTriggerEnter(Collider other)
    {
        if(other.CompareTag("Coin"))
        {
            Destroy(other.gameObject);
            AudioSource.PlayClipAtPoint(sound, Camera.main.transform.position);

            coinCount += 1;
            coinLabel.text = "Coin " + coinCount + "枚";

            // 追加
            if(coinCount == 3)
            {
                door.GetComponent<MoveDoor>().enabled = true;
            }
        }
    }
}

(設定)

  • 「Door」オブジェクトを選択
  • 「MoveDoor」スクリプトのチェックを外す(これでスクリプトがオフになります)

 

  • プレーヤーのオブジェクトを選択
  • 「Door」の空欄に「Door」オブジェクトをドラッグ&ドロップする。


(実行結果)

  • 3枚めのコインを取得した瞬間にドアが上に開けば成功です。