Unity5(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity9】UNETでオンライン開始時のプレイヤー生成位置を変更する【UNET2-2】

いつもひよこのたまごをご利用下さいましてありがとうございます!
おかげ様でチュートリアル数も10ゲーム目となりました!
チュートリアル一覧は
こちら からどうぞ!


スポンサーリンク

Unity5.1.1p3 Personal(2015年7月)


前回の続きです〜


今回はMainシーンに入った時に、プレイヤー生成位置をランダムにする処理を追加します〜


※※※注意※※※
Unityのバージョンが5.1.1f1より前のものだと、シーン間遷移をした時に「StartServer Listen failed」というエラーが発生することがあります。
公式サイトからパッチをダウンロードし、最新の状態にすることをオススメします。



UNET Part 2 - Rotation Syncing - YouTube



【目標】オンライン開始時のプレイヤー生成位置を変更する

①Spawn Positionの作成

Playerを生成する場所を表すSpawn Positionオブジェクトを作成します〜
まずはMainシーンにて空オブジェクトを生成して、名前をSpawn Positionにして下さい〜


f:id:hiyotama:20150706195408p:plain


Spawn PositionのTransformにてResetを行い、Position x y zを0 0 0にします〜


f:id:hiyotama:20150706195513p:plain
Reset


次にもうひとつ空オブジェクト「Spawn」を作成し、Add ComponentからNetwork > NetworkStartPositionを取り付け、Spawn Positionの子オブジェクトにします〜


f:id:hiyotama:20150706195751p:plain


次にSpawnオブジェクトを4つにコピーします〜


f:id:hiyotama:20150706195856p:plain


次にPosition x zとRotation yの値を変更して、4つのSpawnをそれぞれバラバラの位置に配置して下さい〜


f:id:hiyotama:20150706200150p:plain
Spawnをバラけさせる

②プレイヤー生成テスト

それではMenuシーンに戻ってゲームを実行してみましょう〜その前に、NetworkManagerのOfflineシーンに指定したはずのMenuシーンが消えてないか確認し、消えていたら再度指定してあげて下さい〜


f:id:hiyotama:20150706200602p:plain
NetworkManagerのOfflineシーンが消えてないか確認


それではMenuシーンからMainシーンへ遷移してみましょう〜


f:id:hiyotama:20150706201015p:plain
ログインし直すたびに


f:id:hiyotama:20150706201102p:plain
生成位置が変わる


もちろんクライアント側でも同様の結果が得られます〜


f:id:hiyotama:20150706201821p:plain
LAN Clientで接続


f:id:hiyotama:20150706202003p:plain
ホストとは別の位置で生成(同じ位置の場合もある)

③スプラッシュスクリーンを非表示にする(Pro版のみ)

最後になぜかすスプラッシュスクリーンを消す方法が動画に載っていたので、掲載します〜


スプラッシュスクリーンとはUnityでゲームを作った時に一番最初に出てくる「Made With Unity」と書かれたイメージ画像のことです〜


f:id:hiyotama:20150706202226p:plain
こんなやつ


これはEdit > Project Settings > Playerと進み、


f:id:hiyotama:20150706202336p:plain


InspectorビューのSplash Imageをクリックするとでてきます〜が、僕はPro版ではないので消すことができません〜


f:id:hiyotama:20150706202448p:plain
世の中銭なんやで


とりあえず傾きの補間と、プレイヤーの生成位置をランダムにするところまではできました〜


今回はここまでです〜

ありがとうございました〜


【Unity9】UNETでマルチプレイヤーなオンラインゲーム開発【UNET1】
【Unity9】UNETでプレイヤーの動きを補間し、なめらかな動きを実現する【UNET1-2】
【Unity9】UNETでネットワーク越しに傾き(Rotation)を同期させる【UNET2】
【Unity9】UNETでオンライン開始時のプレイヤー生成位置を変更する【UNET2-2】
【Unity9】UNETのネットワークトラフィックを軽減し、効率化する【UNET3】
【Unity9】UNETのlatency(遅延時間)を改善する【UNET4】
【Unity9】UNETのlatency(遅延時間)を表示して、ちょっとだけ改善する【UNET4-2】
【Unity9】UNETのSyncVarのhookの使用例と、前時代の同期方法【UNET5】
【Unity9】UNETを使ってRotationを同期させる【UNET6】
【Unity9】UNETで各プレイヤーにPlayerIDを設定する【UNET7】
【Unity9】UNETで敵プレイヤーにダメージを与える!【UNET8】
【Unity9】UNETでHPを画面に表示し、Playerへダメージを与える【UNET9】
【Unity9】UNETでHPが0以下になった時、Playerを破壊する!【UNET10】
【Unity9】UNETで死んだPlayerを生き返らせる!【UNET11】
【Unity9】UNETでゾンビAIを出現させる!【UNET12】
【Unity9】UNETでゾンビ生成時にユニークなIDを付ける!【UNET13】
【Unity9】UNETでゾンビを撃つ!【UNET14】
【Unity9】UNETでゾンビに攻撃させる!【UNET15】
【Unity9】UNETでゾンビの動きをスムーズにシンクロさせる!【UNET16】
【Unity9】UNETでゾンビ発生地点を増やす【UNET17】
【Unity9】UNETで発生したバグを取り除く【UNET18】
【Unity9】Unity MultiPlayerを使ってネットワーク越しにマッチメイキング!【UNET19】
【Unity9】GUIを改善して、Network Managerを見やすくする!【UNET20】
【Unity9】表示したGUI(Network Manager)を機能させる!【UNET20-2】
【Unity9】UNETでAnimationを同期させる!【UNET21】