(Unity・Oculus)VR空間内で弾を発射する(トリガーボタンの活用)

(1)弾の作成

  • 「Sphere」を作成
  • 名前を「Shell」に変更
  • 大きさとカラーは自由に設定
  • 「Rigidbody」を追加(重要ポイント)
  • 「Use Gravity」のチェックは外す(これでゆっくりでもまっすぐ飛びます)

  • 弾はプレハブ化しておく。

 

(2)発射台の作成

  • 「Create Empty」を作成
  • 名前を「Shot Shell」に変更
  • 位置を調整して、利き腕に設定(重要ポイント)

 

(3)スクリプトの作成

  • 新規にC#スクリプトを作成
  • 名前を「ShotShell」に変更
  • 下記のコードを書いてチェック

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

public class ShotShell : MonoBehaviour
{
    public GameObject shellPrefab;
    public AudioClip sound;

    void Update()
    {
        if(OVRInput.GetDown(OVRInput.RawButton.RIndexTrigger))
        {
            GameObject shell = Instantiate(shellPrefab, transform.position, Quaternion.identity);
            Rigidbody shellRb = shell.GetComponent<Rigidbody>();
            shellRb.AddForce(transform.forward * 500);
            AudioSource.PlayClipAtPoint(sound, transform.position);
            Destroy(shell, 3.0f);
        }
    }
}

 


(4)設定

  • スクリプトを「ShotShell」オブジェクトに追加
  • 「プレハブ」と「発射音(自由)」を設定

 

(5)ビルド&再生

  • 設定が完了したらOculus Quest2にビルドして再生
  • 右手のトリガーボタンを押すたびごとに弾が発射されれば成功です。
  • 利き腕の操作で、狙った方向に弾を発射できることも確認してみましょう。