Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@WisteriaWave

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

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
3
Help us understand the problem. What are the problem?