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