▲前のページへ
次のページへ▼
常時同期オブジェクトのプレハブ化
目次
概要
考察:常に同期させるオブジェクトについて
プレイヤーのプレハブ化
敵キャラクタのプレハブ化
ここまでの内容について、一旦セーブする
概要
▲
まず何よりも「常に同期させるオブジェクトのプレハブ化」が大事
MUN でマルチプレイを実践する上で、何よりも大事なのが、「常に同期オブジェクトのプレハブ化」です。
そもそも MUN では、プレハブ化をしない限り、オブジェクトに対する常時同期処理を行なってくれません。
くれぐれも忘れないように、注意してください。
注記:ここからしばらくの間、実行ボタンを押しても正常な結果を得られません。
プレハブ化する結果、プレイヤーキャラクタがシーン上から消されますので、
ここからしばらくの間、実行ボタンを押しても正常な結果は得られません。
オフラインゲームを作る上でも、出来うることであれば、プレイヤーキャラクタも含め、
「常に同期させなければならないオブジェクト」について、あらかじめプレハブ化させておくことが望ましいです。
考察:常に同期させるオブジェクトについて
▲
「どんなオブジェクトを常に同期させるか」を考えること
この工程に入る前に、「どんなオブジェクトを常に同期させるか」を考えることが重要です。
単純明快な話ですが、常に同期するオブジェクトが多ければ多いほど、通信負荷は増えます。
出来うる限り最低限の、ただし、ゲームが破綻しない範囲での、オブジェクト同期を行なうようにしましょう。
「常に同期する候補」になり得るものを列挙する
さて、そのオブジェクトの選定についてですが。
基本的にゲームに登場する全ての
「動く物体」
が選定候補です。
(逆に「動かない物体」については、動かないのですから、わざわざ位置・姿勢を常に同期させる必要はありません。)
今回のゲームの場合、以下の要素が「常に同期する候補」と言えます。
・プレイヤー ・敵(テディベア) ・プレイヤーの弾 ・敵(テディベア)の弾
本当に「常に同期させる必要があるか」を考える
常に同期させるかどうか判断する、もう1つの基準として、
「動きが常に変動する物体」
であるかどうかが問われます。
動きが常に一定の動きをする物体、例えば今回のゲームの場合であれば「弾」など、
発生するタイミングさえ一致すれば良い物体は「常に同期を取らず、発生時のみ同期を取る」
ようにします。
したがって、今回のゲームの場合、上記からさらに「常に同期する候補」が絞り込めます。
・プレイヤー ・敵(テディベア)
これを今回プレハブ化します。
プレイヤーのプレハブ化
▲
PlayerをResorcesフォルダに移動する
プレイヤーをプレハブ化します。
Hierarchy に表示されている Player を、Assets/Resource フォルダにドラッグ&ドロップしてください。
Resources フォルダに player.prefab が生成されます。
(前々章の「ノンプログラミング開発の手引き」を済ませている人は、この時点で
unitychan_dynamic_locomotion.prefab があると思いますが、それはそのまま残しておきましょう。)
Hierarchy の Player を削除する
Hierarchy に表示されている Player は不要ですので削除します。
Hierarchy の Player を右クリックし、ポップアップメニューから Delete を選びます。
Player が Hierarchy から削除されたことを確認します。
敵キャラクタのプレハブ化
▲
NPC をアクティブにする
プレハブ化する前に、Hierarchy に表示されている NPC をアクティブにします。
Hierarchy にある NPC をクリックしてください。
Inspector に表示されている NPC の項目のチェックボックスを ON にしてください。
Enemy を Resorces フォルダに移動する
続いて、敵キャラクタをプレハブ化します。
Hierarchy に表示されている NPC を、Resource フォルダにドラッグ&ドロップしてください。
(前出で、すでに Resources フォルダを開いていると思いますので、そのまま player と同じフォルダに保存しておいてください)
Resources フォルダに NPC.prefab が生成されます。
Hierarchy の NPC を削除する
Hierarchy に表示されている NPC は不要ですので削除します。
Hierarchy の NPC を右クリックし、ポップアップメニューから Delete を選びます。
NPC が Hierarchy から削除されたことを確認します。
ここまでの内容について、一旦セーブする
▲
新規シーンファイルにシーンデータを保存する
新規にシーンファイルを作成し、そこにシーンデータを保存します。
Unity のメニューから File > Save Scene as... を選択してください。
ファイル名を Test03 として保存しましょう。
プレハブを保存する
作成したプレハブを保存するため、プロジェクト全体を保存しましょう。
Unity のメニューから File > Save Project を選択してください。
▲前のページへ
次のページへ▼