1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unityで「○×ゲーム」を作る(オンライン対応)

Last updated at Posted at 2023-02-12

やること

  • ベースにするゲーム
  • 通信にはPUN2 Freeを使用する
  • UnityRoomにリリースする。

できたもの

https://unityroom.com/games/tic_tac_toe
1.jpg
2.jpg

オンライン対戦実装する前に

シンボリックリンクでデバッグできるようにする

<参考にしたサイト>
https://tsubakit1.hateblo.jp/entry/2015/01/10/233000

手順

リンクさせたいフォルダ(プロジェクト)をコピぺ
・フォルダA
・フォルダA-コピー

・ProjectSettings
・Packages
・Assets
を削除

ターミナルで「フォルダA-コピー」に移動

ln s- リンクさせるフォルダを指定(フォルダAのパス)

削除したフォルダ3つのシンボリックリンクを作る

確認方法

・「フォルダA-コピー」をunityで開いて「・フォルダA」を編集
・「フォルダA-コピー」側でリロードしますか?が出ればシンクロしている。

Main_-TIC_TAC_TOE-PC__Mac___Linux_Standalone-Unity_2020_3_27f1_Personal__Personal___Metal.png
Main_-TIC_TAC_TOE_2-PC__Mac___Linux_Standalone-Unity_2020_3_27f1_Personal__Personal___Metal.png

参考にしたサイト

PUN2の設定
https://qiita.com/UpAllNight/items/43e1b24301eb6029f18b

ハマったこと

.NETが無いとvscodeでエラー

Arm64版をインストールする
x64版ではない。

PUN2の関数でエラーになる

OnPlayerEnteredRoom、OnPlayerLeftRoomなど
エラーとしては
「no suitable method found to override」
overrideできない。
このエラーは引数が間違っているときに出る。
Playerクラスが重複していた。PUN2でもPlayerクラスがあるため追加で作成したPlayerクラスとバッティングしていた。

ゲスト名を入れると日本語だと消える

WebGLだと日本語が表示されない

全体的に

作業 時間
ベースのゲームをコピペ 1h
ベースのゲームの挙動確認 1h
PUN2のインストール 0.5h
PUN2のエラーを解決する 4h
PUN2でゲスト名表示 1h
操作メッセージを送信する 2h
ニックネームを同期させる 0.5h
ビルド&UnityRoomにアップロード 1h
合計9時間

コード数

383行。意外と多い。
プレビュー_results_md_—_TIC_TAC_TOE.png

やってないこと

  • 退出した時に自動でルームにまた入ってしまう。
  • エラーになりまくる。※できるときもある
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?