メインコンテンツまでスキップ

SDK API 概要

MCE SDK は、ゲームコードからエンジンとやり取りするための、クリーンで安定した公開 API を提供します。すべての SDK インターフェースは OpenMon.MCE.SDK 名前空間にあります。公開 SDK API は Indie、Pro、Source、Studio の各エディションに含まれ、Starter エディションでは API は非公開です。

sdk overview

この4つのインターフェースにないものは、SDK のコントラクトの一部ではありません。

設計原則​

  • インターフェースベース: すべての公開 API は、具象クラスではなくインターフェースとして公開されます。これにより、あなたのコードを壊すことなく実装を進化させられます。
  • 読み取り中心: SDK のほとんどのメソッドは読み取り専用のクエリです。変更はエンジン内部のシステム(CommandGraph、Inspector など)を通じて行われます。
  • イベント駆動: 主要な状態の変化は C# イベントで伝えられます。
  • Zenject によるインジェクション: SDK インターフェースには [Inject] 属性でアクセスします。

エントリポイント​

メインのエントリポイントは IMonsterCaptureEngine です:

[Inject] private IMonsterCaptureEngine engine;

このインターフェースから、すべてのサブシステムにアクセスします:

プロパティインターフェース用途
engine.DatabaseIMonsterDatabaseモンスター、技、アイテム、タイプを照会
engine.BattleIBattleSystemバトルの状態とイベント
engine.PlayerIPlayerDataプレイヤーのパーティ、所持金、名前、バッジ
engine.SaveSystemISaveSystemセーブ/ロード操作
engine.Versionstringエンジンのバージョン文字列

クイック例​

using OpenMon.MCE.SDK;
using Zenject;

public class GameDashboard : MonoBehaviour
{
[Inject] private IMonsterCaptureEngine engine;

private void Start()
{
// Query database
var allMonsters = engine.Database.GetAllMonsters();
Debug.Log($"Database has {allMonsters.Count} monster species");

// Check player state
Debug.Log($"Player: {engine.Player.PlayerName}");
Debug.Log($"Team size: {engine.Player.PlayerRoster.RosterSize}");
Debug.Log($"Money: {engine.Player.Money}");
Debug.Log($"Badges: {engine.Player.BadgeCount}");

// Listen to battle events
engine.Battle.OnBattleStarted += () => Debug.Log("Battle!");
engine.Battle.OnBattleEnded += (won) => Debug.Log($"Won: {won}");

// Save/load
if (engine.SaveSystem.HasSaveData(0))
Debug.Log("Save slot 0 has data");
}
}

データベースとプレイヤーのインターフェースは、エンジンのライブな状態を読み取ります。バトルとセーブのインターフェース(engine.Battle、engine.SaveSystem)は、まだ接続されていないエンジンのフックに依存するファサードです。それらのイベントを当てにする前に、IBattleSystem と ISaveSystem の注記をお読みください。

各インターフェースの詳細なドキュメントは、個別の API ページをご覧ください。