スポンサーリンク

Unity実習28、ネットワーク対応してみよう

network4.png

UNIDRAをネットワークを通じてマルチプレイできるようにします
ここのシステムは使い回せばいろいろと出来るかな?
ただ、見た感じGUIなので古いんですよね...上手く出来るかなぁ...


まずは専門用語、もとい基礎知識の勉強です
文章が沢山で書いてたらきりがないので、重要な単語だけまとめておきます
知らないものがあったら各自検索で

・クライアントサーバ
  ・サーバ
  ・クライアント
  ・ゲームサーバ
・マスターサーバ
・NATファシリテータ
  ・NATパンチスルー
  ・Full cone NAT
  ・Address-Restrivted cone NAT
  ・Port-Restricted cone NAT
  ・Symmetric NAT
・回線速度
  ・bps(bit per seconds)
・遅延
・ポート番号
・IPアドレス
  ・グローバルIPアドレス
  ・プライベートIPアドレス


ゲームサーバの立ち上げとクライアント接続の説明が終わり、早速実装していく作業に
この設定をする上で、一旦Hierarchyにあるオブジェクトをいくつか削除して綺麗な状態にしないといけません
せっかく置いたのに消すのかぁ...
Prefab関係は念の為Applyを押してから消します
本では下記のものだけ残すように、と書かれています
・InputManager
・Main Camera
・MainLight
・StartPoint
・TargetCursorEffect
・Terrain
いや待ってくれ、StartPointって何だよ
そんなものは今まで作った覚えもなければ本にもないぞ!
とりあえず無視して行きます
SnapCrab_NoName_2016-6-15_15-2-51_No-00.jpg

ProjectのAssets/Scriptsに UNIDRA_DATA/Data/MainGame/Scripts/Chapter18/NetworkManager.cs をドラッグ&ドロップ
もう画像は良いか

そうしたら、ダブルクリックしてMonoで起動します
// あなたのすきなタイトル名に書き換えてください。 という場所があるので
"UNIDRA" の中身を書き換えます
私はUnidraMadeByNFにしておきました、自分の名前を入れていくスタイル
ここに書いてある名前と同じゲーム同士で通信するので、もし誰かがUNIDRAのままで、自分もUNIDRAだったら、知らない人のとこと通信してしまいますからね
SnapCrab_NoName_2016-6-15_15-8-13_No-00.jpg

Hierarchyに空のオブジェクトを作成、名前を Network にします
そこに、NetworkManagerスクリプトを取り付け
SnapCrab_NoName_2016-6-15_15-29-14_No-00.jpg

SnapCrab_NoName_2016-6-15_15-29-21_No-00.jpg

関数の説明がたっっくさんありますが、カット
一旦ここでビルドして、ゲームサーバの起動とクライアントの接続をテストします
メインメニューからFile > BuildSettings を開きます
Scenes In BuildでGameSceneを最初に起動するようにします、ドラッグして一番上へ
Player Settings...を選んで、Run In Backgroundにチェックを入れておきます
これを入れておくと、ゲームウィンドウがバックグラウンド(一番上にいない)時にゲームが止まりません
オンラインですしね、ウィンドウ変えただけで止まるのもアレなので
そうしたらビルドします、新しくフォルダを作ってその中に入れておくと分かりやすい
無題

ビルドしたら起動
Windowedにチェックを入れてから起動すればフルスクリーンにならずに済みます
起動するとこんなメニューが出てきます(奥でエフェクトが回ってますがスルーで)
SnapCrab_NoName_2016-6-15_15-53-59_No-00.jpg

GUIの項目は以下のとおり
Player Name: プレイヤーの名前を入力できます
Game Server Name: ゲームサーバの名前を入力します
Launch: ゲームサーバを起動
Game Server List: マスターサーバに登録されているゲームサーバの一覧を表示、クリックするとクライアントとして接続を開始
Refresh: Game Server Listを更新
Connect Local Server: 自分のPCに立ち上がってるゲームサーバに接続
Status: エラーなどを表示

Launchを押します
下のStatusがLaunchingServerになればOK、NATチェックをしてサーバーを起動しています
SnapCrab_NoName_2016-6-15_16-17-4_No-00.jpg

で、本ならサーバが起動するとウィンドウが消えます
となっているのですが、何時までたっても消えない...あれ~?
試しにオフラインで接続する方法を試してみる
Connect Local Serverで出来るとのことですが...
SnapCrab_NoName_2016-6-15_16-39-50_No-00.jpg

失敗してんじゃん...なんで...
ポートが空いてない?関係あるかな?
昔からネットのポート開放でサーバー関係は毎回毎回接続できず、結局Hamachiになってたので
といっても、自分自身のとこにすら接続に失敗、どうなってんの本当...探しても出てこないし...

仕方がないので飛ばします、手順だけ記載
自分が起動して鯖を立てたら、そのウィンドウが消えます
消えたらもう一つUNIDRAを起動、Game Server Listに先ほどのサーバーが表示されていれば、それをクリック
ステータスがConnectingToServerになります

さてさて、こっから先の行程ですが...スクリプトを修正しては鯖起動して試して~という作業の繰り返し
ですが、サーバーが起動出来ない以上、これ以降の作業は無理がある!
というわけで
一旦ここで終わらしておきます

まぁ、オフラインは何とか出来ましたし...いいんじゃないですかね
オンラインはオンライン専用の本でも買えばよろし

ちなみに、本はまだ先があります
付録、ということで
「2Dゲームを作ってみよう」
「ナビゲーションメッシュを使ってみよう」
「地形を作ろう」
の3つが用意されています

個人的に、地形にある草木の設定は知りたかったので
先にそっちをやりたいと思います
オンラインの前にオフラインでしっかりと出来ないとね、とポジティブに
明日から2Dの方に入ります
関連記事

Leave a Reply


管理者にだけ表示を許可する

Comment

Leave a Reply


管理者にだけ表示を許可する