Help us understand the problem. What is going on with this article?

Unityオンラインマルチプレイゲームテストのための複数Unityエディタ起動

概要

PUN2を使ったオンラインマルチプレイゲームの学習をしていて、複数のUnityエディタ上での実行でちゃんとネットワーク上で同期がとれているか確認したくなった。そのやり方をまとめておく。

ざっくりいうと、
1. 開発中のプロジェクトディレクトリ(A)とは異なるパスにダミーのプロジェクトディレクトリ(B)を作成
2. ディレクトリ(A)配下の以下のディレクトリへのシンボリックリンクをディレクトリ(B)直下に用意
- Assets
- UnityPackageManager
- ProjectSettings
3. プロジェクトA,BともUnityエディタで開いてやってそれぞれで再生ボタンを押す

1,2 についてはシェルスクリプト化すると以下のような感じ(Mac前提)。

#!/bin/sh
# --設定--
# 開発中のプロジェクトのパス
PROJECT_PATH_ORG=<開発中のプロジェクトのパス>
# ダミーのプロジェクトのパス
PROJECT_PATH=<ダミーのプロジェクトのパス>

# ダミーのプロジェクトディレクトリを作成
rm -rf $PROJECT_PATH
mkdir $PROJECT_PATH

# ProjectSettingsディレクトリ以下のシンボリックリンクを貼る
mkdir $PROJECT_PATH/ProjectSettings
ln -s $PROJECT_PATH_ORG/ProjectSettings/* $PROJECT_PATH/ProjectSettings/

# Assetsディレクトリ以下のシンボリックリンクを貼る
mkdir $PROJECT_PATH/Assets
ln -s $PROJECT_PATH_ORG/Assets/* $PROJECT_PATH/Assets/

# UnityPackageManagerディレクトリ以下のシンボリックリンクを貼る
mkdir $PROJECT_PATH/UnityPackageManager
ln -s $PROJECT_PATH_ORG/UnityPackageManager/* $PROJECT_PATH/UnityPackageManager/

上のシェルスクリプトでCUIからプロジェクトBをUnityエディタで開くところまでやっとくともっと便利かもしれない。下を参考にしていずれやろうかな。

3.について同時に複数のプロジェクト開くには、UnityHub起動してからプロジェクト開けばOK。だけど上のシェルスクリプトでCUIからプロジェクトBをUnityエディタで開くところまでやっとくともっと楽かもしれない。下を参考にしていずれやろうかな。
- https://docs.unity3d.com/jp/460/Manual/CommandLineArguments.html

実際に試してみた

以下のスクリーンショットは、PUN2で始めるオンラインゲーム開発入門【その1】の動作を確認してみたときのやつ。

プロジェクトAでシーンを再生
スクリーンショット 2020-01-05 2.42.31.png

プロジェクトBでシーンを再生
スクリーンショット 2020-01-05 2.43.50.png

プロジェクトAでシーンの再生を停止
スクリーンショット 2020-01-05 2.47.19.png

ちゃんと同期取れてることがわかる。

余談

やっててあれ?ってなったのが、元のプロジェクトでいじってたシーンがシンボリックリンク貼ってる側のプロジェクトを開いたときにデフォルトで表示されていなかったこと。
これはシーンファイルをダブルクリックすればいいだけ。デフォルトで表示されるものと勘違いしてた。

スクリーンショット 2020-01-05 2.23.28.png

参考

http://tsubakit1.hateblo.jp/entry/2015/01/10/233000
http://reyloffice.blog.fc2.com/blog-entry-13.html

WisteriaWave
実務上、いろんな技術を広く浅く経験してきてます。 最近はRails,AWS周りのことをやっていることが多い。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした