(Unity)VR空間内に自動ドアを作成する

(ドアの作成)

  • 新規に「Cube」を作成
  • 名前を「Door」に変更
  • 「Scale」を「5,5,1」に変更

  • 色は「Material」を使って自由に設定
  • 「Position」は通路に設定

 


(ドアを動かす)

<スクリプトの作成>

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

public class DoorMove : MonoBehaviour
{
    private Vector3 pos;

    void Update()
    {
        pos = transform.position;

        transform.Translate(0, 0.01f, 0);

        if(pos.y > 6f)
        {
            Destroy(gameObject);
        }
    }
}

<設定>

  • スクリプトをDoorオブジェクトに追加

  • 設定が完了したらゲーム再生
  • ドアが自動的に上に移動すれば成功です。

 


(透明センサーの作成)

  • 新規に「Cube」を作成
  • 名前を「DoorOpen」に変更
  • 「Scale」を「5,5,1」に変更
  • 通路の「ドアの手前」に移動させる

<すり抜け>

  • DoorOpenオブジェクトを選択
  • 「Box Collider」の中にある「Is Trigger」にチェックを入れる。

  • これでDoorOpenオブジェクトを「すり抜ける」ことができるようになります。
  • ゲームを再生して確認してみましょう。

<透明化>

  • DoorOpenオブジェクトを選択
  • 「Mesh Renderer」の「チェック」を外す。

  • これでDoorOpenオブジェクトが「透明」になります。
  • ゲームを再生して確認してみましょう。

*これがドアを開けるセンサーになります。

 


(DoorOpenに触れたらDoorが上に移動する)

<仕組み>

  • DoorOpenオブジェクトを選択
  • 「Door Move」スクリプトの「チェック」を外して「オフの状態」にする。
  • これでDoorは動かなくなります。

  • PlayerがDoorOpenオブジェクトに触れた瞬間、「Door Move」スクリプトの「チェック」を入れて「オンの状態」にする。
  • これでDoorは上方向に動きます。


<スクリプトの作成>

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

public class DoorOpen : MonoBehaviour
{
    public GameObject door;
    public AudioClip sound;

    private void OnTriggerEnter(Collider other)
    {
        if(other.CompareTag("Player"))
        {
            door.GetComponent().enabled = true;
            AudioSource.PlayClipAtPoint(sound, transform.position);
            this.gameObject.SetActive(false);
        }
    }
}

<タグの設定>

  • Playerオブジェクト選択
  • 「Untagged」をクリック

  • 「Player」を選択

  • これでTagの設定が完了です。


<スクリプトの設定>

  • スクリプトをDoorOpenオブジェクトに追加
  • Doorの空欄にはDoorオブジェクトをドラッグ&ドロップ
  • Soundの空欄には音のデータを設定

 

  • これで設定完了
  • ゲームを再生して確認
  • 最初はドアが閉まっている。

  • Playerを前進させてDoorOpenに触れる。
  • 触れた瞬間に効果音がなって、ドアが上方向に移動すれば成功です。

 

*PCで成功したら、Oculus Quest2でも確認してみましょう。