【Unity カードゲーム】オンライン対戦機能の実装方法解説【応用編】

本記事をご購入頂きありがとうございます!!
この記事は下記の記事シリーズの続編となります。
あまりいないとは思いますが、上記の【基礎編】が終わっていない状態でこちらを始めてしまうと

こいつは何を言ってるんだ??
こんな状態になること請け合いなので、
必ず【基礎編】をやり終えてから、こちらの記事【応用編】を実施して下さい!
この解説記事をやり終えた時には、こんな感じにオンライン機能を実装したカードゲームが作れるように解説していくので、自分のペースで楽しみながら進めてみて下さいな!
(解説ではシンプル目に作っていくので、作成後に好きな見た目に変えてみてください!)
という訳で、さっそくですが解説に入って行くよ!!
【序章】実装内容の全体概要説明
まずは今回の記事にて解説する内容を説明していくよ!
今回の解説は下記の5章+αの計6つから構成されています。
- 【第一章】前提事項の連携
- 【第二章】オンライン対戦に向けての前準備
- 【第三章】オンライン対戦機能の実装
- 【第四章】ホーム画面の実装
- 【第五章】追加の実装
- 【プラスα】モーションの実装
各章の実装の流れとしては、こんな感じ↓
①【第一章】前提事項の連携
ここでは応用編を始める前に、コードの内容やゲームの実装状況を確認をしていくよ!
基礎編で書いたコードの内容が不安でも、
この時点で記載しておくべきコードを連携するので安心して進めていきましょう。
ゲームの作成状況についても確認するのでご安心を!!

「今までの解説内容がちゃんと設定出来るのか不安だ、、」
って方もここで確認出来るので、安心して進めて大丈夫だよ!!
②【第二章】オンライン対戦に向けての前準備
ここではオンライン対戦機能を実装しやすくする為の前準備をしていくよ!
前準備と言いつつカードゲームにおいては割と大事な処理なので、しっかり実装していこう!
実装内容の詳細はこのあたり↓
- ドロー処理の実装
- 召喚処理の実装
- ドロップ時の召喚処理を修正
- 攻撃処理の実装
- ターン処理の実装

これ以降の実装はこの処理を元にしてオンライン化していくので、よく理解しながら進めてみてね!!
③【第三章】オンライン対戦機能の実装
ここでも本記事でのメインとなる「オンライン対戦機能の実装方法」の解説をしていくよ!
基礎編では、オンラインマッチングまでしか実装出来ていないので、
応用編では、ちゃんとオンラインで対戦するまでの機能を完成させるよ!!
詳細としてはこんな流れ↓
- 召喚処理のオンライン化
- ドロー処理の修正
- ドロー処理のオンライン化
- 召喚処理のバグ修正
- カードバトル処理のオンライン化
- リーダへの攻撃処理のオンライン化
- ターン変更処理のオンライン化

基本的には二章で実装した処理をオンライン化していくよ!
ここで実装した内容はカードゲーム以外でも使えるので、やり方をよく理解しつつ進めてみてね!
④【第四章】ホーム画面の実装
ここではホーム画面を作って、マッチングしてからバトル画面に進むようにしていくよ!
ちなみに別の記事で解説してる「ガチャ機能」や「デッキ編成機能」ともここから繋げられるようになるよ。
ホーム画面は全然難しくないけど、
ゲームを作る上で必ず作るものなのでやり方を覚えておくといいよ!

ホーム画面のイメージはこんな感じ。

⑤【第五章】追加機能の実装
この章では、ここまで実装してきた機能の修正や、他に必要な機能の追加実装をしていくよ!
オンライン機能のバグの修正や、機能の連携をしないとゲームとして不完全なので、この章でオンライン機能を問題なく実装させていきましょう。
詳細としてはこんな流れ↓
- ターン切り替えパネルの実装
- 先行と後攻の決定
- ゲームエンドの処理実装(ホームに戻る処理)
- マッチング状態から抜ける
- カードの裏面の実装

ここの章でゲームとして完成させていくよ!
地味なところではあるけど、ゲーム作成において大事なところなので地道にやっていこう!
⑥【プラスα】モーションの実装
ここでは最後にカードの攻撃や召喚時にモーションが実装されるようにしていくよ!
前の章まででオンライン機能自体の実装は完了だけど、見た目が簡素すぎるのでちょっとした動きを付けていく!って話です。

この動画の召喚時と攻撃時の動きを実装していくよ!
ここまで実装すれば、機能的には下記の動画とほぼ同じゲームが作れるので頑張って作っていこう!
ではではこの辺りで本記事の全体概要説明は終わりです!!
結構ボリュームがあると思うので、自分のペースでゆっくり進めてみてね!
わからない部分が出てきたらコメントをくれれば出来るだけ返信するので、気軽に聞いてくださいな。
(もちろん記事の感想でも何でもコメントは大歓迎です( ´ ▽ ` )ノ)
それでは楽しみながらゲーム制作やっていきましょう!!