<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>冒険ゲームで学ぶ GS2 on Game Server Services | Docs</title><link>/ja/get_start/adventure/</link><description>Recent content in 冒険ゲームで学ぶ GS2 on Game Server Services | Docs</description><generator>Hugo</generator><language>ja</language><atom:link href="/ja/get_start/adventure/index.xml" rel="self" type="application/rss+xml"/><item><title>開発環境を準備する</title><link>/get_start/adventure/start/setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/get_start/adventure/start/setup/</guid><description>&lt;p&gt;GS2 の学習用プロジェクトと、Unity の空のシーンを用意しましょう。ここで作る GS2 のアカウントは、ゲームの設定を管理する開発者用です。&lt;/p&gt;&#10;&lt;h2 id="1-gs2-に登録する"&gt;1. GS2 に登録する&lt;a class="td-heading-self-link" href="#1-gs2-%e3%81%ab%e7%99%bb%e9%8c%b2%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;a href="https://gs2.io" target="_blank" rel="noopener"&gt;GS2 のサイト（別タブ）&lt;/a&gt;から開発者アカウントを登録します。届いたメールのリンクでメールアドレスを確認したら、&lt;a href="https://app.gs2.io" target="_blank" rel="noopener"&gt;マネージメントコンソール（別タブ）&lt;/a&gt;にログインしてください。&lt;/p&gt;&#10;&lt;h2 id="2-学習用プロジェクトを作る"&gt;2. 学習用プロジェクトを作る&lt;a class="td-heading-self-link" href="#2-%e5%ad%a6%e7%bf%92%e7%94%a8%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%82%92%e4%bd%9c%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Project → プロジェクトリスト → プロジェクトを新規作成&lt;/strong&gt;を開きます。&lt;/li&gt;&#10;&lt;li&gt;プロジェクト名に &lt;code&gt;adventure&lt;/code&gt;、説明に「冒険ゲームの練習」と入力します。&lt;/li&gt;&#10;&lt;li&gt;最初に有効化するリージョンを &lt;strong&gt;東京&lt;/strong&gt; にします。この教材のコードも東京（&lt;code&gt;ap-northeast-1&lt;/code&gt;）へ接続します。&lt;/li&gt;&#10;&lt;li&gt;契約プランなどの内容を確認し、&lt;strong&gt;作成&lt;/strong&gt;を押します。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="/images/adventure/create-project.png" alt="プロジェクト作成画面。左上で名前、左側で最初のリージョンを指定する"&gt;&lt;/p&gt;&#10;&lt;p&gt;プロジェクト名には英数字、ハイフン、アンダースコアを使います。すでに学習用プロジェクトがある場合は、東京リージョンが有効であることを確認して使えます。&lt;/p&gt;&#10;&lt;h2 id="credentials"&gt;3. Unity に設定する接続情報を確認する&lt;a class="td-heading-self-link" href="#credentials" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;作成したプロジェクトの東京リージョンで、&lt;strong&gt;Deploy → スタックリスト → Default → アウトプットリスト&lt;/strong&gt;を開きます。次の二つの値を、Unity の接続設定に使います。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;アウトプット名&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Unity で設定する項目&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ApplicationClientId&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Client ID&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ApplicationClientSecret&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Client Secret&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="4-unity-とツールを準備する"&gt;4. Unity とツールを準備する&lt;a class="td-heading-self-link" href="#4-unity-%e3%81%a8%e3%83%84%e3%83%bc%e3%83%ab%e3%82%92%e6%ba%96%e5%82%99%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Unity で空のプロジェクトを作り、シーンを &lt;code&gt;Adventure&lt;/code&gt; という名前で保存します。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Studio&lt;/strong&gt; は、画面で機能を選び、表に設定を入力する方法です。&lt;strong&gt;SDK（Unity）&lt;/strong&gt; は、GS2 の設定と C# コードを自分で書く方法です。下のタブを選ぶと、その方法での準備手順が表示されます。&lt;/p&gt;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk（unity）" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK（Unity）&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;ol&gt;&#10;&lt;li&gt;&lt;a href="https://gs2.io/studio.html" target="_blank" rel="noopener"&gt;GS2 Studio のダウンロードページ（別タブ）&lt;/a&gt;からデスクトップアプリを導入します。&lt;/li&gt;&#10;&lt;li&gt;起動画面の&lt;strong&gt;新規プロジェクトを作成&lt;/strong&gt;から &lt;code&gt;Adventure&lt;/code&gt; を作り、保存先のフォルダーを選びます。こちらはパソコン上の設計データを置くプロジェクトです。&lt;/li&gt;&#10;&lt;li&gt;右上で&lt;strong&gt;シンプル&lt;/strong&gt;を選びます。左側に&lt;strong&gt;ホーム・機能を追加・表・反映&lt;/strong&gt;が表示されます。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;a href="/images/adventure/studio-2026-11-3/home.jpg" target="_blank" rel="noopener" aria-label="作成した直後の Adventure。左側に「ホーム・機能を追加・表・反映」が並ぶ（別タブで拡大）"&gt;&lt;img src="/images/adventure/studio-2026-11-3/home.jpg" alt="作成した直後の Adventure。左側に「ホーム・機能を追加・表・反映」が並ぶ" loading="lazy"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>1. アカウントを作成してログインする</title><link>/get_start/adventure/lessons/01-login/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/get_start/adventure/lessons/01-login/</guid><description>&lt;p&gt;まずはゲームにログインできるようにしましょう。ログインしたプレイヤーの ID を画面に表示し、Unity の再生を止めても、同じアカウントで戻ってこられるようにします。&lt;/p&gt;&#10;&lt;p&gt;初回はアカウントを作成して、プレイヤー ID とパスワードを保存します。2 回目からは保存した情報でログインします。ログイン後に受け取るアクセストークンには期限があるので、次に起動するときもログイン処理を通します。&lt;/p&gt;&#10;&lt;h2 id="1-プレイヤーを保存する場所を作る"&gt;1. プレイヤーを保存する場所を作る&lt;a class="td-heading-self-link" href="#1-%e3%83%97%e3%83%ac%e3%82%a4%e3%83%a4%e3%83%bc%e3%82%92%e4%bf%9d%e5%ad%98%e3%81%99%e3%82%8b%e5%a0%b4%e6%89%80%e3%82%92%e4%bd%9c%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;GS2 の設定やデータを分けて置く場所を「ネームスペース」と呼びます。プレイヤーのアカウントを保存するために、GS2-Account のネームスペースを作りましょう。&lt;/p&gt;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk（unity）" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK（Unity）&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;h3 id="引き継ぎ設定を追加する"&gt;「引き継ぎ設定」を追加する&lt;a class="td-heading-self-link" href="#%e5%bc%95%e3%81%8d%e7%b6%99%e3%81%8e%e8%a8%ad%e5%ae%9a%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Studio の &lt;code&gt;Adventure&lt;/code&gt; プロジェクトを開きます。左側で&lt;strong&gt;機能を追加&lt;/strong&gt;を押し、検索欄に &lt;code&gt;引き継ぎ&lt;/code&gt; と入力してください。メニューが見当たらない場合は、右上の&lt;strong&gt;シンプル&lt;/strong&gt;を選びます。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;引き継ぎ設定&lt;/strong&gt;のカードで、&lt;strong&gt;追加&lt;/strong&gt;を押します。このパッケージには、プレイヤーのアカウントを保存する Account の設定も入っています。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="/images/adventure/studio-2026-11-3/identity-search.jpg" target="_blank" rel="noopener" aria-label="「機能を追加」で引き継ぎ設定を検索した画面。カードの「追加」を押す（別タブで拡大）"&gt;&lt;img src="/images/adventure/studio-2026-11-3/identity-search.jpg" alt="「機能を追加」で引き継ぎ設定を検索した画面。カードの「追加」を押す" loading="lazy"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;カードに&lt;strong&gt;追加済み&lt;/strong&gt;と表示されたら、Studio への読み込みは完了です。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="/images/adventure/studio-2026-11-3/identity-added.jpg" target="_blank" rel="noopener" aria-label="引き継ぎ設定のカードに「追加済み」と表示された状態（別タブで拡大）"&gt;&lt;img src="/images/adventure/studio-2026-11-3/identity-added.jpg" alt="引き継ぎ設定のカードに「追加済み」と表示された状態" loading="lazy"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="サーバーに反映する"&gt;サーバーに反映する&lt;a class="td-heading-self-link" href="#%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%81%ab%e5%8f%8d%e6%98%a0%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;追加した設定を GS2 に送って、実際にアカウントを保存できるようにします。この作業を「デプロイ」と呼びます。&lt;/p&gt;&#10;&lt;p&gt;左側で&lt;strong&gt;反映&lt;/strong&gt;を押し、&lt;strong&gt;サーバに反映する&lt;/strong&gt;の枠にある&lt;strong&gt;サーバとの差分を確認&lt;/strong&gt;を押してください。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="/images/adventure/studio-2026-11-3/identity-publish.jpg" target="_blank" rel="noopener" aria-label="反映画面の「サーバに反映する」から「サーバとの差分を確認」を押す（別タブで拡大）"&gt;&lt;img src="/images/adventure/studio-2026-11-3/identity-publish.jpg" alt="反映画面の「サーバに反映する」から「サーバとの差分を確認」を押す" loading="lazy"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;GS2 ログイン&lt;/strong&gt;が表示されたら、準備で登録した開発者アカウントのメールアドレスとパスワードでログインします。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="/images/adventure/studio-2026-11-3/identity-gs2-login.jpg" target="_blank" rel="noopener" aria-label="GS2 の開発者アカウントでログインする画面（別タブで拡大）"&gt;&lt;img src="/images/adventure/studio-2026-11-3/identity-gs2-login.jpg" alt="GS2 の開発者アカウントでログインする画面" loading="lazy"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;ログインできたら、デプロイ先と変更内容を確認します。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;GS2プロジェクト選択&lt;/strong&gt;で、学習用の &lt;code&gt;adventure&lt;/code&gt; プロジェクトと &lt;strong&gt;東京（ap-northeast-1）&lt;/strong&gt; を選び、&lt;strong&gt;選択&lt;/strong&gt;を押します。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;GS2への変更を確認&lt;/strong&gt;で、引き継ぎ設定のパッケージ &lt;code&gt;foundation-core-identity&lt;/code&gt; の差分を確認します。新しいプロジェクトでは、&lt;code&gt;Account&lt;/code&gt; というネームスペースが作られます。スタック名は Studio が用意した名前を使います。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;1パッケージをデプロイ&lt;/strong&gt;を押し、処理が完了するまで待ちます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;反映&lt;/strong&gt;に戻り、&lt;strong&gt;サーバに反映する&lt;/strong&gt;の枠が&lt;strong&gt;最新の内容を反映済み&lt;/strong&gt;になっていることを確認します。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;これで、プレイヤーを保存する &lt;code&gt;Account&lt;/code&gt; ネームスペースができました。&lt;/p&gt;</description></item><item><title>2. 冒険を登録して一覧に表示する</title><link>/get_start/adventure/lessons/02-quests/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/get_start/adventure/lessons/02-quests/</guid><description>&lt;p&gt;ログインできるようになったので、次は冒険の一覧を作りましょう。最初の冒険は「森の探索」です。冒険を GS2 ではクエストと呼び、クエストグループにまとめて管理します。今回はクエストグループ &lt;code&gt;main&lt;/code&gt; に &lt;code&gt;forest&lt;/code&gt; として登録し、画面に名前を表示してみます。&lt;/p&gt;&#10;&lt;h2 id="ゲームの設定を用意する"&gt;ゲームの設定を用意する&lt;a class="td-heading-self-link" href="#%e3%82%b2%e3%83%bc%e3%83%a0%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%82%92%e7%94%a8%e6%84%8f%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;冒険の名前や報酬など、開発者が決めるゲームの設定を「マスターデータ」と呼びます。一方、プレイヤーが持っているコインや、どの冒険の途中かを表すものは「ユーザーデータ」です。まずは、一覧に表示するマスターデータを作ります。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;forest&lt;/code&gt; はプログラムが冒険を指定するための識別子で、「森の探索」はプレイヤーに見せる名前です。二つを分けておくと、画面上の名前を変えても、プログラムでは同じ冒険として扱えます。&lt;/p&gt;&#10;&lt;p&gt;一覧を表示するための設定を作ります。開始時の消費と報酬の設定欄は、空にしておきます。&lt;/p&gt;&#10;&lt;h2 id="手順"&gt;手順&lt;a class="td-heading-self-link" href="#%e6%89%8b%e9%a0%86" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&#10;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk（unity）" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK（Unity）&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;h3 id="クエストを追加する"&gt;クエストを追加する&lt;a class="td-heading-self-link" href="#%e3%82%af%e3%82%a8%e3%82%b9%e3%83%88%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;第1章で使った Studio の &lt;code&gt;Adventure&lt;/code&gt; プロジェクトを開きます。&lt;strong&gt;機能を追加&lt;/strong&gt;で &lt;code&gt;クエスト&lt;/code&gt; を検索し、カードの&lt;strong&gt;追加&lt;/strong&gt;を押してください。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="/images/adventure/studio-2026-11-3/quest-search.jpg" target="_blank" rel="noopener" aria-label="「機能を追加」でクエストを検索し、カードの「追加」を押す（別タブで拡大）"&gt;&lt;img src="/images/adventure/studio-2026-11-3/quest-search.jpg" alt="「機能を追加」でクエストを検索し、カードの「追加」を押す" loading="lazy"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;追加済み&lt;/strong&gt;と表示されるまで待ちます。クエストが使う「スケジュール基盤」も一緒に追加されます。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="/images/adventure/studio-2026-11-3/quest-added.jpg" target="_blank" rel="noopener" aria-label="クエストのカードに「追加済み」と表示された状態（別タブで拡大）"&gt;&lt;img src="/images/adventure/studio-2026-11-3/quest-added.jpg" alt="クエストのカードに「追加済み」と表示された状態" loading="lazy"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="クエストグループを作る"&gt;クエストグループを作る&lt;a class="td-heading-self-link" href="#%e3%82%af%e3%82%a8%e3%82%b9%e3%83%88%e3%82%b0%e3%83%ab%e3%83%bc%e3%83%97%e3%82%92%e4%bd%9c%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;表 → クエスト → クエストグループ（QuestCollection）&lt;/strong&gt; を開き、&lt;strong&gt;行を追加&lt;/strong&gt;を押します。ID のセルを選んで Enter を押し、&lt;code&gt;main&lt;/code&gt; と入力して Enter で確定します。開催スケジュールは空欄にします。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="/images/adventure/later-chapters/02-quest-group.jpg" target="_blank" rel="noopener" aria-label="クエストグループの表。ID が main の行を作り、開催スケジュールは空欄にする（別タブで拡大）"&gt;&lt;img src="/images/adventure/later-chapters/02-quest-group.jpg" alt="クエストグループの表。ID が main の行を作り、開催スケジュールは空欄にする" loading="lazy"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>3. 冒険を開始し、報酬を受け取る</title><link>/get_start/adventure/lessons/03-rewards/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/get_start/adventure/lessons/03-rewards/</guid><description>&lt;p&gt;一覧に出てきた「森の探索」を、実際に遊べるようにしましょう。「開始」で冒険に出て、「クリア」で戻ってくると、10 コインがもらえるようにします。今回は何回クリアしても同じ報酬にし、初回ボーナスは付けません。&lt;/p&gt;&#10;&lt;h2 id="クリア報酬は-gs2-側に設定する"&gt;クリア報酬は GS2 側に設定する&lt;a class="td-heading-self-link" href="#%e3%82%af%e3%83%aa%e3%82%a2%e5%a0%b1%e9%85%ac%e3%81%af-gs2-%e5%81%b4%e3%81%ab%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;報酬の枚数は、GS2 のクエスト設定で決めます。通常クリア報酬を「無償コイン 10 枚」にしておけば、Unity からクリアを報告したときに、GS2 がコインを加えてくれます。Unity 側では、残高の変更に合わせて画面の表示を更新します。&lt;/p&gt;&#10;&lt;p&gt;コインは GS2-Money2 の「ウォレット」に保存します。ウォレットを区別する番号を「スロット」と呼び、このゲームでは &lt;code&gt;0&lt;/code&gt; を使います。この章で Money2 の設定を追加し、以降の章でも同じウォレットを読み書きします。&lt;/p&gt;&#10;&lt;p&gt;冒険の完了とコインの入金は、まとめて処理したい操作です。このような一連の処理をトランザクションと呼びます。クエストの通常クリア報酬に入金を設定すれば、Unity はクリアを報告するだけで済みます。&lt;/p&gt;&#10;&lt;p&gt;コインを増やすといった処理を、設定の中では「獲得アクション」と呼びます。次の手順では、通常クリア報酬にコインの獲得アクションを追加します。&lt;/p&gt;&#10;&lt;h2 id="手順"&gt;手順&lt;a class="td-heading-self-link" href="#%e6%89%8b%e9%a0%86" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&#10;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk（unity）" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK（Unity）&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;h3 id="通貨と報酬を設定する"&gt;通貨と報酬を設定する&lt;a class="td-heading-self-link" href="#%e9%80%9a%e8%b2%a8%e3%81%a8%e5%a0%b1%e9%85%ac%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;機能を追加&lt;/strong&gt; で「通貨」を追加します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;クエスト（Quest）&lt;/strong&gt; で &lt;code&gt;forest&lt;/code&gt; の &lt;strong&gt;通常クリア報酬&lt;/strong&gt; のセルをダブルクリックします。右側の &lt;strong&gt;アイテムを追加&lt;/strong&gt; を押し、追加された &lt;strong&gt;未設定&lt;/strong&gt; を開きます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;アクション&lt;/strong&gt; で &lt;code&gt;DepositByUserId&lt;/code&gt; を検索し、&lt;code&gt;money2&lt;/code&gt; の &lt;strong&gt;ウォレットの残高に加算&lt;/strong&gt; を選びます。&lt;strong&gt;ターゲットリソース&lt;/strong&gt; は &lt;strong&gt;なし&lt;/strong&gt; のまま、次の値を入力します。&lt;/p&gt;</description></item><item><title>4. 再起動して続きを遊ぶ</title><link>/get_start/adventure/lessons/04-resume/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/get_start/adventure/lessons/04-resume/</guid><description>&lt;p&gt;第3章までに作ったゲームを再起動して、集めたコインや進行中の冒険が残っているか試してみましょう。この章では、コードやサーバーの設定を変更せずに進めます。&lt;/p&gt;&#10;&lt;h2 id="コインが残っているか確かめる"&gt;コインが残っているか確かめる&lt;a class="td-heading-self-link" href="#%e3%82%b3%e3%82%a4%e3%83%b3%e3%81%8c%e6%ae%8b%e3%81%a3%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e7%a2%ba%e3%81%8b%e3%82%81%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;冒険をクリアして、コインを 10 枚以上集めます。画面に報酬が反映されたら、プレイヤー ID とコイン残高を控えます。&lt;/li&gt;&#10;&lt;li&gt;Unity の Play を止め、もう一度再生します。Studio は自動でログインします。SDK は &lt;strong&gt;ログイン&lt;/strong&gt; ボタンを押します。この章で再生し直すときは、毎回この方法でログインしてください。&lt;/li&gt;&#10;&lt;li&gt;プレイヤー ID と残高が、控えた値と同じか比べます。冒険は始める前の状態になっていれば成功です。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;コインや冒険の進行状況は GS2 に保存されています。第1章では、同じアカウントでログインするための情報を端末に保存しました。再起動すると、そのアカウントでログインし、第3章の表示処理が GS2 からデータを取得します。&lt;/p&gt;&#10;&lt;h2 id="冒険の途中から再開する"&gt;冒険の途中から再開する&lt;a class="td-heading-self-link" href="#%e5%86%92%e9%99%ba%e3%81%ae%e9%80%94%e4%b8%ad%e3%81%8b%e3%82%89%e5%86%8d%e9%96%8b%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;森の探索の開始ボタンを押します。進行中の冒険が表示されたら、クリアせずに Play を止めます。&lt;/li&gt;&#10;&lt;li&gt;再生し直してログインします。同じプレイヤー ID で、進行中の冒険が表示されることを確かめます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;クリア&lt;/strong&gt; を押します。コインが 10 枚増え、次の冒険を始められる状態になったら、残高を控えます。&lt;/li&gt;&#10;&lt;li&gt;もう一度 Play を止め、再生してログインします。控えた残高が表示され、進行中の冒険がなければ成功です。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Unity の Play の停止・再生に加えて、ビルドしたアプリでも終了・起動を試してみましょう。起動前後のプレイヤー ID と残高を比べます。&lt;/p&gt;&#10;&lt;h2 id="別のアカウントと切り替えて比べる"&gt;別のアカウントと切り替えて比べる&lt;a class="td-heading-self-link" href="#%e5%88%a5%e3%81%ae%e3%82%a2%e3%82%ab%e3%82%a6%e3%83%b3%e3%83%88%e3%81%a8%e5%88%87%e3%82%8a%e6%9b%bf%e3%81%88%e3%81%a6%e6%af%94%e3%81%b9%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;元のプレイヤー ID とコイン残高を控えます。&lt;/li&gt;&#10;&lt;li&gt;Studio は再生を止め、PlayerPrefs Account Store の &lt;strong&gt;Key Prefix&lt;/strong&gt; を &lt;code&gt;adventure.resume-test&lt;/code&gt; にして再生します。SDK は再生を止め、&lt;code&gt;AdventureLogin&lt;/code&gt; の &lt;strong&gt;Account Slot&lt;/strong&gt; を &lt;code&gt;resume-test&lt;/code&gt; に変えて再生し、ログインします。&lt;/li&gt;&#10;&lt;li&gt;初めて使う保存先なら、新しいプレイヤー ID になり、コインは 0、進行中の冒険はなしになります。&lt;/li&gt;&#10;&lt;li&gt;Studio は再生を止めて Key Prefix を &lt;code&gt;adventure.main&lt;/code&gt; に戻し、再生します。SDK は再生を止め、&lt;strong&gt;Account Slot&lt;/strong&gt; を &lt;code&gt;main&lt;/code&gt; に戻して再生し、ログインします。元のプレイヤー ID と残高が表示されることを確かめます。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;a href="/get_start/adventure/lessons/05-stamina/"&gt;次へ：冒険の開始時にスタミナを消費する&lt;/a&gt;&lt;/p&gt;</description></item><item><title>5. 冒険の開始時にスタミナを消費する</title><link>/get_start/adventure/lessons/05-stamina/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/get_start/adventure/lessons/05-stamina/</guid><description>&lt;p&gt;ここからは、冒険にスタミナを使うようにしていきます。森の探索を始めるのに必要なのは 5。足りないときは回復を待つ、というルールにしましょう。&lt;/p&gt;&#10;&lt;h2 id="始める前に"&gt;始める前に&lt;a class="td-heading-self-link" href="#%e5%a7%8b%e3%82%81%e3%82%8b%e5%89%8d%e3%81%ab" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;進行中の冒険があればクリアしてから、スタミナの設定を追加します。&lt;/p&gt;&#10;&lt;h2 id="追加する設定"&gt;追加する設定&lt;a class="td-heading-self-link" href="#%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b%e8%a8%ad%e5%ae%9a" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;スタミナの設定には &lt;code&gt;stamina&lt;/code&gt; という名前を付けます。最初の値は 20、通常の回復上限も 20 です。冒険で使った分は、300 秒ごとに 1 ずつ自然に回復するようにします。&lt;/p&gt;&#10;&lt;h2 id="手順"&gt;手順&lt;a class="td-heading-self-link" href="#%e6%89%8b%e9%a0%86" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&#10;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk（unity）" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK（Unity）&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;h3 id="スタミナの表を作る"&gt;スタミナの表を作る&lt;a class="td-heading-self-link" href="#%e3%82%b9%e3%82%bf%e3%83%9f%e3%83%8a%e3%81%ae%e8%a1%a8%e3%82%92%e4%bd%9c%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;機能を追加&lt;/strong&gt;で「スタミナ」を追加し、&lt;strong&gt;表 → スタミナ（Energy）&lt;/strong&gt; に次の行を作ります。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;項目&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;値&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;ID&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;stamina&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;初期上限（defaultMaximum）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;上限超過を許可（useOverflow）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;オフ&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;超過時上限（overflowedMaximum）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;回復間隔（recoveryIntervalMinutes）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;5&lt;/code&gt;（分）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1回の回復量（recoveryValue）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;回復間隔の入力単位は&lt;strong&gt;分&lt;/strong&gt;です。300 秒にしたいので、入力するのは &lt;code&gt;5&lt;/code&gt; です。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="/images/adventure/later-chapters/05-stamina-settings.jpg" target="_blank" rel="noopener" aria-label="スタミナの表。stamina の上限20、上限超過なし、回復間隔5分、回復量1を設定する（別タブで拡大）"&gt;&lt;img src="/images/adventure/later-chapters/05-stamina-settings.jpg" alt="スタミナの表。stamina の上限20、上限超過なし、回復間隔5分、回復量1を設定する" loading="lazy"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;クエスト（Quest）&lt;/strong&gt; の &lt;code&gt;forest&lt;/code&gt; の &lt;strong&gt;開始時消費&lt;/strong&gt; をダブルクリックします。&lt;strong&gt;アイテムを追加 → 未設定&lt;/strong&gt; を開き、アクションで &lt;code&gt;ConsumeStaminaByUserId&lt;/code&gt;（スタミナを消費）を選びます。ターゲットリソースは &lt;strong&gt;なし&lt;/strong&gt; のまま、次の値を入力します。&lt;/p&gt;</description></item><item><title>6. コインでスタミナを回復する</title><link>/get_start/adventure/lessons/06-shop/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/get_start/adventure/lessons/06-shop/</guid><description>&lt;p&gt;冒険で集めたコインを、今度は使ってみましょう。作るのは、20 コインでスタミナを 10 回復できる商品です。&lt;code&gt;refill&lt;/code&gt; という名前で登録し、冒険の報酬でもらった無償コインで買えるようにします。&lt;/p&gt;&#10;&lt;h2 id="支払いと回復をまとめて処理する"&gt;支払いと回復をまとめて処理する&lt;a class="td-heading-self-link" href="#%e6%94%af%e6%89%95%e3%81%84%e3%81%a8%e5%9b%9e%e5%be%a9%e3%82%92%e3%81%be%e3%81%a8%e3%82%81%e3%81%a6%e5%87%a6%e7%90%86%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;商品を買うときは、コインの支払いとスタミナの回復をセットで行いたいので、二つの処理を一つのトランザクションにまとめます。コインが足りないときには、スタミナだけ回復することなく、購入が失敗するようにします。&lt;/p&gt;&#10;&lt;h2 id="手順"&gt;手順&lt;a class="td-heading-self-link" href="#%e6%89%8b%e9%a0%86" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&#10;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk（unity）" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK（Unity）&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;h3 id="商品の表を作る"&gt;商品の表を作る&lt;a class="td-heading-self-link" href="#%e5%95%86%e5%93%81%e3%81%ae%e8%a1%a8%e3%82%92%e4%bd%9c%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;機能を追加&lt;/strong&gt;で「スタミナショップ」を追加し、&lt;strong&gt;表 → スタミナ商品（EnergyProduct）&lt;/strong&gt; に次の行を作ります。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;項目&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;値&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;ID&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;refill&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;回復対象（energy）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;stamina&lt;/code&gt; の行&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;回復量（recoveryValue）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;購入コスト（consumeActions）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;下記の消費アクションを1件&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;strong&gt;購入コスト&lt;/strong&gt; のセルをダブルクリックし、&lt;strong&gt;アイテムを追加 → 未設定&lt;/strong&gt; を開きます。アクションで &lt;code&gt;WithdrawByUserId&lt;/code&gt;（ウォレットから残高を消費）を選び、ターゲットリソースは &lt;strong&gt;なし&lt;/strong&gt; のまま次の値を入力します。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;項目&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;値&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;namespaceName&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Currency&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;userId&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;#{userId}&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;slot&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;withdrawCount&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;paidOnly&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;code&gt;paidOnly&lt;/code&gt; を &lt;code&gt;false&lt;/code&gt; にすると、この教材で集めた無償コインを支払いに使えます。&lt;/p&gt;</description></item><item><title>7. 設定を変更してゲームへ反映する</title><link>/get_start/adventure/lessons/07-update/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/get_start/adventure/lessons/07-update/</guid><description>&lt;p&gt;基本の仕組みができたので、ゲームの内容を少し変えてみましょう。森の探索の報酬を 10 から 15 コインに増やし、新しい冒険「洞窟の探索」も追加します。設定を変えると、画面や実際の報酬がどう変わるかを見ていきます。&lt;/p&gt;&#10;&lt;h2 id="始める前に"&gt;始める前に&lt;a class="td-heading-self-link" href="#%e5%a7%8b%e3%82%81%e3%82%8b%e5%89%8d%e3%81%ab" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;進行中の冒険をクリアし、購入などの処理が完了してから、設定を変更します。&lt;/p&gt;&#10;&lt;h2 id="変更内容"&gt;変更内容&lt;a class="td-heading-self-link" href="#%e5%a4%89%e6%9b%b4%e5%86%85%e5%ae%b9" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;冒険&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;消費スタミナ&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;通常報酬&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;初回報酬&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;forest&lt;/code&gt; 森の探索&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;15 コイン&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;なし&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;cave&lt;/code&gt; 洞窟の探索&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;20 コイン&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;なし&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="手順"&gt;手順&lt;a class="td-heading-self-link" href="#%e6%89%8b%e9%a0%86" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&#10;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk（unity）" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK（Unity）&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;h3 id="既存の行を変更し新しい行を追加する"&gt;既存の行を変更し、新しい行を追加する&lt;a class="td-heading-self-link" href="#%e6%97%a2%e5%ad%98%e3%81%ae%e8%a1%8c%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%97%e6%96%b0%e3%81%97%e3%81%84%e8%a1%8c%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;表 → クエスト（Quest）&lt;/strong&gt; を開き、次のように編集します。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;ID&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;グループ&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;displayName&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;開始時消費の consumeValue&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;通常クリア報酬の count&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;forest&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;main&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;森の探索&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;cave&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;main&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;洞窟の探索&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;8&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;code&gt;forest&lt;/code&gt; の通常クリア報酬を開き、&lt;strong&gt;depositTransactions → DepositTransaction → count&lt;/strong&gt; を &lt;code&gt;15&lt;/code&gt; に変更します。&lt;/p&gt;</description></item><item><title>8. 通信エラーとボタンの連打に対応する</title><link>/get_start/adventure/lessons/08-failures/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/get_start/adventure/lessons/08-failures/</guid><description>&lt;p&gt;作ったショップで、購入ボタンを続けて押したり、通信を切ったりしてみましょう。これまで使ってきたプレイヤーで進めます。&lt;/p&gt;&#10;&lt;h2 id="処理中にもう一度押してみる"&gt;処理中にもう一度押してみる&lt;a class="td-heading-self-link" href="#%e5%87%a6%e7%90%86%e4%b8%ad%e3%81%ab%e3%82%82%e3%81%86%e4%b8%80%e5%ba%a6%e6%8a%bc%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;コインを 20 枚以上用意します。足りない場合は冒険をクリアして集めます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;20 コインでスタミナを 10 回復&lt;/strong&gt; を押し、すぐにもう一度押してみます。&lt;/li&gt;&#10;&lt;li&gt;処理中はボタンが無効になり、次の購入を始められないことを確かめます。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;コードでは、操作を始めるときに &lt;code&gt;busy&lt;/code&gt; を &lt;code&gt;true&lt;/code&gt; にし、&lt;code&gt;finally&lt;/code&gt; で &lt;code&gt;false&lt;/code&gt; に戻しています。ボタンの表示だけでなく、Studio の &lt;code&gt;Run()&lt;/code&gt;、SDK の &lt;code&gt;RunWrite()&lt;/code&gt; でも処理中の呼び出しを止めています。&lt;/p&gt;&#10;&lt;p&gt;購入が完了してボタンが有効になった後に押すと、それは新しい購入になります。&lt;/p&gt;&#10;&lt;h2 id="コインが足りないときの表示を確かめる"&gt;コインが足りないときの表示を確かめる&lt;a class="td-heading-self-link" href="#%e3%82%b3%e3%82%a4%e3%83%b3%e3%81%8c%e8%b6%b3%e3%82%8a%e3%81%aa%e3%81%84%e3%81%a8%e3%81%8d%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%92%e7%a2%ba%e3%81%8b%e3%82%81%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;購入を繰り返し、コイン残高を 20 枚未満にします。&lt;/li&gt;&#10;&lt;li&gt;もう一度購入ボタンを押し、コイン不足のメッセージが表示されることを確かめます。&lt;/li&gt;&#10;&lt;li&gt;失敗した購入でコインが減らず、スタミナも回復していないことを確認します。自然回復で増えた分は除いて比べてください。&lt;/li&gt;&#10;&lt;li&gt;森の探索を始め、冒険の操作は続けられることを確かめます。確認できたらクリアします。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;コインやスタミナの不足は、理由を表示して次の操作を受け付けます。&lt;/p&gt;&#10;&lt;h2 id="同じ購入を再試行できるようにする"&gt;同じ購入を再試行できるようにする&lt;a class="td-heading-self-link" href="#%e5%90%8c%e3%81%98%e8%b3%bc%e5%85%a5%e3%82%92%e5%86%8d%e8%a9%a6%e8%a1%8c%e3%81%a7%e3%81%8d%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e3%81%99%e3%82%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;通信が切れたとき、サーバーでは購入が終わっていて、返事だけが届いていないことがあります。そのまま新しい購入を送ると、もう一度コインを使ってしまいます。&lt;/p&gt;&#10;&lt;p&gt;そこで、1回の購入に一つのキーを付けます。&lt;code&gt;duplicationAvoider&lt;/code&gt; に同じキーを渡して同じ内容を送り直すと、GS2 は完了済みの購入を繰り返さず、その結果を返します。&lt;/p&gt;&#10;&lt;p&gt;Unity の再生を止め、使っているコースのファイルで、同名のファイルを置き換えてください。Inspector の参照はそのまま使います。&lt;/p&gt;&#10;&#10;&#10;&#10;&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;&#10; &lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link active"&#10; id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"&#10; data-td-tp-persist="studio" aria-controls="tabs-00-00" aria-selected="true"&gt;&#10; Studio&#10; &lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item"&gt;&#10; &lt;button class="nav-link"&#10; id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"&#10; data-td-tp-persist="sdk（unity）" aria-controls="tabs-00-01" aria-selected="false"&gt;&#10; SDK（Unity）&#10; &lt;/button&gt;&#10; &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;div class="tab-content" id="tabs-0-content"&gt;&#10; &lt;div class="tab-body tab-pane fade show active"&#10; id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;&#10; &lt;p&gt;&lt;a href="/samples/adventure/08/AdventureStudioView.cs" download&gt;AdventureStudioView.cs&lt;/a&gt; をダウンロードします。&lt;/p&gt;&#10;&lt;p&gt;購入を行う &lt;code&gt;Buy()&lt;/code&gt; は、次のようになります。&lt;code&gt;purchaseId&lt;/code&gt; はクラスのフィールドです。&lt;/p&gt;</description></item></channel></rss>