e.blog

主にUnity/UE周りのことについてまとめていきます

VRモードをオフにして起動するバッチファイルを作る

概要

VRコンテンツのネットワーク対応をしていると、ビルドしてexeファイルとエディタのふたつでデバッグするときがあるんですが、VRモードを双方ともオンにしているとあとから起動したほうが終了されてしまいます。
HMDはひとつのアプリでしか使えない)

ただ、毎回VRサポートをオフにしたりオンにしたり、とかしているのはだいぶめんどくさいので、なんとかできないかなと調べました。
結論から言うと、コマンドライン引数でオフにすることができたのでそれを簡単にするためのバッチファイル作成用スクリプトを書きました。(大層なもんじゃないけど)

VRモードをオフにする

Unityから書き出したexeファイルに、コマンドライン引数で-vrmodeを指定するとどのVRモードかを選択することができます。
ここで、-vrmode Noneを与えるとVRモードをオフにすることができます。
(これを利用するには多分、Build settingsのVR SupportedでNoneを追加しておく必要があるはず)

バッチファイルを自動生成する

さて、コマンドライン引数で与えてVRモードをオフにすることができるのが分かりましたが、毎回それを実行するのもそれはそれで面倒です。
あくまでデバッグ目的のものなので、簡単なバッチファイルを生成して簡単にしておくといいかなと思ったので、そのスクリプトです。

コード

using UnityEditor;
using UnityEditor.Callbacks;
using System.Collections;
using System.IO;

public static class CreateBatchFile
{
    [PostProcessBuild(100)]
    public static void OnPostProcessBuild(BuildTarget target, string path)
    {
        string directory = Path.GetDirectoryName(path);
        string filePath = Path.Combine(directory, "launchWithoutHMD.bat");

        string exeName = Path.GetFileName(path);
        using (StreamWriter writer = File.CreateText(filePath))
        {
            writer.Write("start ./" + exeName + " -vrmode None\nexit /B");
        }
    }
}

こんな感じでPostProcess用のスクリプトを書いて、Editorフォルダに突っ込んでおけば自動的にバッチファイルを生成してくれます。

しかし、VR開発していてネットワーク対応させようとすると1台のPCでやるのはだいぶきびしい感じですね( ;´Д`)
(VR ReadyなノートPCがほしい・・)