spacetimedb-client-unreal について
Unreal Engine で SpacetimeDB クライアントを実装するためのスキルです。Unreal SDK を使ったコード生成、接続設定、サブスクリプション処理、実行時の実装パターンを扱います。
主な機能
- 01Unreal バインディングの生成
- 02データベース接続の設定
- 03購読済みテーブルキャッシュの参照
- 04Reducer の呼び出しとデリゲート登録
- 05サブスクリプションとコールバックの管理
活用シーン
- 01Unreal プロジェクトへの SpacetimeDB クライアント追加
- 02ゲームモジュール向けバインディングの生成
- 03ゲームコードでの購読イベント処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ danmossa/ spacetimedb-skills --skill spacetimedb-client-unrealインストール後、Claude Code で/spacetimedb-client-unrealを入力して読み込まれたか確認します。
同梱ファイルreferences/clients-unreal.md
詳細
このスキルは、Unreal Engine クライアントの実装に使用します。
Unreal の基本パターン
プロジェクトのモジュール詳細を使用して、Unreal バインディングを生成します。
spacetime generate --lang unrealcpp --uproject-dir path/to/Game.uproject --module-path spacetimedb --unreal-module-name Game
接続の構成:
UDbConnection* Conn = UDbConnection::Builder()
->WithUri(TEXT("ws://localhost:3000"))
->WithDatabaseName(TEXT("my-database"))
->OnConnect(OnConnectDelegate)
->OnConnectError(OnConnectErrorDelegate)
->OnDisconnect(OnDisconnectDelegate)
->Build();
ランタイムのルール
- Unreal SDK は、WebSocket コールバックと
UDbConnectionのティックを通じてメッセージを自動的に処理します。プロジェクトに既存のポーリングループがない限り、手動のポーリングループを追加しないでください。 - サブスクライブ済みキャッシュの読み取りには生成された
Conn->Dbテーブルオブジェクトを使用し、リデューサーの呼び出しにはConn->Reducersを使用します。 - 起動時のイベントが重要な場合は、サブスクライブする前に
OnInsert、OnDelete、OnUpdate、およびリデューサーデリゲートをバインドします。 SubscribeToAllTables()はサンプルに便利ですが、本番コードでは特定の SQL/クエリセットをサブスクライブしてください。- プロジェクトで使用されている、生成済みの Unreal クラス名とデリゲート名を使用してください。ローカルに存在しない限り、サンプルの
UUserTableやFUserTypeの識別子をコピーしないでください。 - 既存のプロジェクト構成で統合されている場合を除き、プラグインのセットアップ、生成コード、ゲームプレイクラスは分けてください。
リファレンスマップ
| 必要な情報 | 開く |
|---|---|
| Unreal SDK API | references/clients-unreal.md |
ガイダンス
- Unreal の接続ティックとコールバックのバインドパターンは、リファレンスと一貫させてください。
- サンプルの識別子をそのままコピーせず、ローカルプロジェクトの生成済み Unreal クラス名を使用してください。
- Unreal チュートリアル全体の作業は、spacetimedb-tutorials に振り分けてください。
コメント
Markdown 対応