World Manager

World Managerはゲームスクリプトを順番に実行する担当オブジェクトです。

また、セーブ、ポーズ、リセット、ワールドイベントも担当します。

Property
Game Nameゲームの名前。
ゲームデータの保存に必要です。
Encrypt Save有効にすると、保存データが暗号化されます。
Pause Input (Pause Key)ゲームの一時停止状態を切り替えるボタン。
View Debug有効にすると、投射物や他のゲームシステムからのRaycastを表示します。
On Awake()Awake()中に呼び出される汎用Unityイベント。
オブジェクトを初期化する等に利用。
On Start()Start()時に呼び出される汎用Unityイベント。
On Pause()Pause()が呼び出されたときに呼び出されるUnityイベント。
On Unpause()Unpause()が呼び出されたときに呼び出されるUnityイベント。
On Reset All()ResetAll()が呼び出されたときに呼び出されるUnityイベント。
Method
Pause()ゲームを一時停止し、プレーヤーの入力をブロックする。
Unpause()ゲームの一時停止が解除される。
PauseNoInvoke()ゲームを一時停止し、onPause()を呼び出さずにプレイヤーの入力をブロックする。
UnpauseNoInvoke()onUnpause()を呼び出さずにゲームの一時停止を解除する。
ResetAll()プレイヤー、AI、Interactablesなど、ゲーム内の関連スクリプトがすべてリセットされる。
Save()シーン内のすべてのインベントリが保存され、Healthを含むワールド変数も保存されます。これはOnDisable()の間に自動的に呼び出されます。
DeleteAllSavedData()ゲーム内のすべてのセーブデータが削除されます。

World Events

ワールドオブジェクトが重要なWorld Eventsに反応できるように、メッセージを送ります。
これらのイベントは通常、プレイヤーが死ぬなどのゲーム内の特別なイベントによって生成されます。
それに対して、リスナーとして登録されているゲームオブジェクトはアラートを受け取り、それに応じて反応します。

World Eventsを作成するには、Add World Eventからイベントに名前を付けて、addボタンをクリックします。
World Eventsは、AssetsFolder/Eventsフォルダにあるスクリプト可能なオブジェクト(WorldEventSO)です。必要なだけ作成してください

World Eventが作成されたら、トリガーとなるイベントとイベントリスナーが必要になります。
WorldEventTriggerは、イベントをトリガーするオブジェクトに配置します。

例を続けると、プレイヤーが死ぬと、そのHealthコンポーネントはUnity Eventを介してWorldEventTriggerを呼び出し、すべてのリスナーにイベントを送信します。
WorldEventListenerは、UI要素や敵AIなど、イベントに反応する必要があるゲームオブジェクトに配置します。

World Event Trigger
World Eventトリガーするワールドイベントを選択する。
On World Eventワールドイベントがトリガーされたときに呼び出されるイベント。

Save

ゲームエンジンはゲームデータを保存するためにJSONシリアライズと基本的な暗号化を実装しています。
インベントリとワールド変数はこれに大きく依存しています。
開発中は、World ManagerのEncrypt Saveを無効にして(実際にデータを読めるようにするため)、Application.persistedDataPathにアクセスしてデータが永続化されたかどうかを確認します。
通常、パスは以下のようになります:

%userprofile%\AppDataLocalLow\companyname\productname\TwoBitMachines\gameName

すべてのセーブデータを削除するオプションは、ゲーム状態を素早くリセットしてテストするために、開発中にも利用可能です。

タイトルとURLをコピーしました