(Unity・LEGOワールドで遊ぶ)触れている間だけ扉が開く

(オブジェクトの作成)

  • Cube等で扉オブジェクトを作成
  • 名前は「Door」
  • 大きさやデザイン等は自由

  • Cylinder等でオブジェクト作成
  • 名前は「UnLock」
  • 大きさ等は自由
  • このUnLockオブジェクトに触れている間だけ、扉が開く(扉が消える)ようにします。


(スクリプト)

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

public class UnLock : MonoBehaviour
{
    public GameObject door;
    public AudioClip openSound;
    public AudioClip closeSound;

    private void OnTriggerEnter(Collider other)
    {
        door.SetActive(false);
        AudioSource.PlayClipAtPoint(openSound, transform.position);
    }

    private void OnTriggerExit(Collider other)
    {
        door.SetActive(true);
        AudioSource.PlayClipAtPoint(closeSound, transform.position);
    }
}

(設定)

  • このスクリプトを「UnLock」オブジェクトに追加
  • Doorの空欄にはDoorオブジェクトをドラッグ&ドロップ
  • サウンドは自由に設定
  • Is Triggerにチェック


(実行結果)

  • 設定が完了したらゲーム再生
  • 最初は扉が閉まっている。

  • UnLockオブジェクトに触れると扉が消える。

  • UnLockオブジェクトから離れると扉が出現する。