-
-
Notifications
You must be signed in to change notification settings - Fork 2
Game events ja
Tom_XV edited this page Sep 23, 2026
·
3 revisions
English | 日本語
実験的な機能です。 中核 1.2.0(フレームワーク 1.2.0)で入ったものです。
中核(DragNWash.ModFramework)にある GameEvents では、ゲームの出来事をフレームワークが 1 回だけ受け取って、Mod ごとに別々に渡します。どこかの処理が例外を投げても、ログに残って Mods 画面のその Mod の下に出るだけで、ほかの Mod の処理はそのまま動きます。
SceneManager.sceneLoaded に直接つないだ処理が例外を投げると、あとから登録した Mod の処理がみんな止まってしまい、しかもどの Mod のせいなのか分かりません。フレームワークの第一原則が防ぎたいのはまさにこれなので、GUIDE のルール 9 で、こうした出来事は GameEvents から受け取ってくださいとお願いしています。
private void Awake()
{
GameEvents.OnSceneLoaded(MyMod.Guid, (scene, mode) => ApplyTo(scene));
GameEvents.OnGameStarted(MyMod.Guid, () => Log("タイトル画面が出ました。"));
GameEvents.OnQuitting(MyMod.Guid, SaveMyState);
}
private void OnDestroy() => GameEvents.Remove(MyMod.Guid);| メンバー | 内容 |
|---|---|
void OnSceneLoaded(string ownerGuid, Action<Scene, LoadSceneMode> handler) |
シーンが読み込まれるたびに |
void OnSceneUnloaded(string ownerGuid, Action<Scene> handler) |
シーンが解放されるたびに |
void OnGameStarted(string ownerGuid, Action handler) |
タイトル画面が最初に出て、ゲームの仕組みがそろった時点で 1 回。そのあとで登録した処理はすぐに呼ばれる |
void OnQuitting(string ownerGuid, Action handler) |
ゲームの終了時 |
bool IsGameStarted |
タイトル画面が一度出ていれば true |
void Remove(string ownerGuid) |
その Mod が登録した処理をすべて外す |
- 例外は Mod の GUID と出来事の名前つきでログに出て、Mods 画面ではその Mod の下に表示されます。ゲームのメンバーが見つからないときの
GameHooks.Unavailableと同じ出方です。 - 同じ出来事に対するほかの Mod の処理は、そのまま動きます。
- 3 回続けて失敗した処理は、そのセッションの間オフになります。1 回成功すれば数え直しです。
- 100 ms より時間のかかった処理はデバッグログに書かれるので、シーンの読み込みが遅いときに、どの Mod のせいかをたどれます。
これはわざとです。毎フレームの処理には MonoBehaviour の Update が向いています。フレームワーク全体で Update を用意すると、すべての Mod のフレーム処理が一か所に集まってしまい、遅い Mod が 1 つあるだけで全員が巻き添えになります。
Players
Mod authors
- Getting started
- Playing well with others (the guide)
- Going online
- Installer
- Mod reload
- Overrides (no code)
- Graphs (no code, makes things happen)
Tools (F1, developer tools)
- Inspector
- Console
- Code graph
- Bridge (AI clients, MCP)
API
日本語
- ホーム
- プレイヤー向け · ランチャー · FAQ · クラッシュレポート
- はじめての Mod · ほかの Mod と一緒に動かす · 外と通信する Mod · インストーラー · Mod の再読み込み · Overrides · Graphs
- Inspector · Console · コードのグラフ · Bridge
- 中核 API · 操作の登録簿 · Text · Dialogue · Tool window · Assets · Flags and saves · GameEvents · SettingMeta
Links
- Repository
- Releases
- Changelog
- Design records: DESIGN · ROADMAP · CONTENT_POLICY