エンジニア的な事を何かしらアウトプットしておくブログ

エンジニア的じゃないブログはこちら→ http://kconcon3.hatenadiary.jp/

Unityから別アプリ(プロセス)を起動する

概要

Unityから別アプリ(プロセス)を起動する

今回使用した環境

Windows7 Pro 64bit
Unity 2017.3.0f3
Visual Studio Community 2017

準備

  1. Unityを起動、プロジェクト作成
  2. GameObject → Create Empty で空のGameObjectを作成し、名前はTestManagerとでもしておく
  3. Assetsフォルダで Create → C# Script でスクリプトファイル作成、名前はTestManager.csとでもしておく
  4. 作成したスクリプト(TestManager.cs)は TestManagerオブジェクトのComponentに追加


サンプルコード

TestManager.cs

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

public class TestManager : MonoBehaviour
{
    // メンバ変数
    Process proc;

    // アプリ起動時に呼ばれる
    void Start()
    {
        // 別アプリ(プロセス)起動
        proc = new Process();
        proc.StartInfo.FileName = "xxxx";   // 起動させる別アプリ名をここに入れて下さい(フルパス指定でも可) 
        proc.Start();
    }

    // アプリ終了時に呼ばれる
    private void OnApplicationQuit()
    {
        // 別アプリ終了処理

        if (!proc.HasExited)
        {
            // 別アプリが起動中の場合のみ終了させる
            proc.CloseMainWindow();
        }

        proc.Close();
        proc = null;
    }
}


UnityのPlayボタンを押すと別アプリも起動、Playを終了させると別アプリも終了するはずです。

Unityというより、(C#) .NETの機能ですね。