| タスクの説明 | 関数 |
|---|---|
特定のアチーブメントについて、アチーブメント名、タイプ、ターゲットまたはビットフィールド長などの情報を取得します。 | Platform.Achievements.GetDefinitionsByName() |
特定のアチーブメントについて、ユーザーの進捗状況(名前、ロック解除されたステータス、アチーブメントがロック解除された時刻、現在のビットフィールド、現在のカウントなど)の情報を取得します。 | Platform.Achievements.GetProgressByName() |
すべてのアチーブメントについて、アチーブメント名、タイプ、ターゲットまたはビットフィールド長などの情報を取得します。 | Platform.Achievements.GetAllDefinitions() |
すべてのアチーブメントについて、ユーザーの進捗状況(名前、ロック解除されたステータス、アチーブメントがロック解除された時刻、現在のビットフィールド、現在のカウントなど)の情報を取得します。 | Platform.Achievements.GetAllProgress() |
| タスクの説明 | 関数 |
|---|---|
指定したアチーブメントをロック解除します。目標を達成していなくても、countアチーブメントやビットフィールドアチーブメントを完全にロック解除します。 | Platform.Achievements.Unlock() |
countアチーブメントのカウントを増やします。 | Platform.Achievements.AddCount() |
Bitfield型のアチーブメントのビットの1つまたは複数ビットをロック解除します。一度ロック解除したビットの状態を、後で変更することはできません。例えば、ビットフィールドが10011の場合、AddFieldsに00110を渡して呼び出すと、結果の状態は10111になります。 | Platform.Achievements.AddFields() |
LIKES_TO_WINというアチーブメントを定義します。次に、更新メッセージをチェックしてアチーブメントがロック解除されているかどうかを確認し、trueの場合アプリでアチーブメントのロック状態を解除します。true以外の場合、ゲームは続行し、ゲームの条件が満たされた場合(この例では勝利が記録された場合)にアチーブメントのカウントがインクリメントされます。using UnityEngine;
using System.Collections;
using Oculus.Platform;
using Oculus.Platform.Models;
public class AchievementsManager : MonoBehaviour
{
// API NAME defined on the dashboard for the achievement
private const string LIKES_TO_WIN = "LIKES_TO_WIN";
// true if the local user hit the achievement Count setup on the dashboard
private bool m_likesToWinUnlocked;
public bool LikesToWin
{
get { return m_likesToWinUnlocked; }
}
public void CheckForAchievmentUpdates()
{
Achievements.GetProgressByName(new string[]{LIKES_TO_WIN}).OnComplete(
(Message<AchievementProgressList> msg) =>
{
foreach (var achievement in msg.Data)
{
if (achievement.Name == LIKES_TO_WIN)
{
m_likesToWinUnlocked = achievement.IsUnlocked;
}
}
}
);
}
public void RecordWinForLocalUser()
{
Achievements.AddCount(LIKES_TO_WIN, 1);
CheckForAchievmentUpdates();
}
}
POST https://graph.oculus.com/$APPID/achievement_definitions| パラメーター | 必須/任意 | 説明 | 型 | 例 |
|---|---|---|---|---|
access_token | 必須 | OC|$APP_ID |$APP_SECRETを含むベアラトークン | 文字列 | “OC|1234|456789” |
api_name | 必須 | このAPIおよびクライアントSDKでアチーブメントを参照するために使用する名前。この英数字の文字列は、アプリに対して一意でなければなりません。アチーブメントが存在する場合は、この呼び出しによってアチーブメントが更新されます。存在しない場合は、この名前のアチーブメントが作成されます。 | 文字列 | “VISIT_3_CONTINENTS” |
achievement_type | 必須 | これはアチーブメントタイプです。アチーブメントには次の3つのタイプがあります。それぞれのタイプについては、上記の説明を参照してください。 | 列挙。有効な値: SIMPLE、COUNT、BITFIELD | “SIMPLE” |
achievement_write_policy | 必須 | アチーブメント達成状況を書き込むことができるユーザーを決定します。2つの異なる書き込みポリシーについては、上記の説明を参照してください。 | 列挙。有効な値: CLIENT_AUTHORITATIVE、SERVER_AUTHORITATIVE | “CLIENT_AUTHORITATIVE” |
target | achievement_typeがcountまたはbitfieldの場合は必須です | ロック解除するアチーブメントのイベント発生回数。ターゲットについて詳しくは、上記の説明を参照してください。 | 整数 | 50 |
bitfield_length | アチーブメントがビットフィールドの場合は必須です | このアチーブメントのビットフィールドのサイズ。 | 整数 | 7 |
is_archived | 任意。デフォルトはfalseです。 | アチーブメントがアーカイブされているかどうかを示すブーリアン。アチーブメントのアーカイブを解除する場合にも使用できます。アーカイブ時にはアチーブメントやユーザーの進捗は削除されません。 | ブーリアン | “false” |
title | 必須 | ユーザーに表示されるアチーブメントの名前。 | 文字列 | “3大陸の訪問を果たした” |
description | 必須 | ユーザーに表示される説明テキスト。 | 文字列 | “このアチーブメントがロック解除されるのは、...” |
unlocked_description _override | 任意 | アチーブメントがロック解除されるときにユーザーに表示されるテキストの説明。 | 文字列 | “おめでとうございます!3大陸の訪問を達成しました。” |
is_secret | 任意 - デフォルトはfalseです。 | 達成されない間はアチーブメントを非表示にしておくかどうかを示すブーリアン。 | ブーリアン | “false” |
unlocked_image_file | 任意 - デフォルトイメージが使用されます。 | アチーブメント達成後に表示されるアイコンのローカルパス。256x256 PNGファイルでなければなりません。 | 文字列 | ”@/path/to/unlocked_icon.png; type=image/png” |
locked_image_file | 任意 - ロック解除済みの画像が提供されている場合は、その画像のグレースケール表示されたものがロックの画像として使用されます。画像が提供されていない場合は、デフォルトが使用されます。 | アチーブメント未達成のときに表示されるアイコンのローカルパス。256x256 PNGファイルでなければなりません。 | 文字列 | ”@/path/to/locked_icon.png; type=image/png” |
curl -X POST -d "access_token=OC|$APP_ID|$APP_SECRET" -d "api_name=VISIT_3_CONTINENTS" -d "achievement_type=BITFIELD" -d "achievement_write_policy=SERVER_AUTHORITATIVE" -d "target=3" -d "bitfield_length=7" -d "is_archived=false" -d "title=Achievement Title" -d "description=How to earn me" -d "unlocked_description_override=You did it" -d "is_secret=false" -d "locked_image_file=@/path/to/locked_icon.png;type=image/png" -d "unlocked_image_file=@/path/to/unlocked_icon.png;type=image/png" https://graph.oculus.com/$APPID/achievement_definitions
{"id":"1074233745960170"}
GET https://graph.oculus.com/$APPID/achievement_definitions| パラメーター | 必須/任意 | 説明 | 型 | 例 |
|---|---|---|---|---|
access_token | 必須 | OC|$APP_ID |$APP_SECRETを含むベアラトークン | 文字列 | “OC|1234|456789” |
api_names | 任意 | 取得するアチーブメント定義の名前。省略すると、すべてのアチーブメント定義が返されます。 | 文字列の配列 | [“VISIT_3_CONTINENTS”, “WALK_500_MILES”] |
include_archived | 任意 | アーカイブされたアチーブメントを含めるかどうかを示すブーリアン。これは、アプリアクセストークンを使用して認証する場合にのみ使用できます。 | ブーリアン | “false” |
fields | 任意 | 取得するフィールド名のコンマ区切りリスト。以下を含めることができます: api_name、achievement_type、achievement_write_policy、target、bitfield_length、is_archived、title、description、unlocked_description_override、is_secret、locked_image_uri、unlocked_image_uri。省略すると、IDのみが返されます。 | 文字列 | “api_name,achievement_type” |
curl -X GET "https://graph.oculus.com/$APP_ID/achievement_definitions?fields=api_name,achievement_type,achievement_write_policy,target,bitfield_length,is_archived,title,description,unlocked_description_override,is_secret,locked_image_uri,unlocked_image_uri&api_names=\[\"VISIT_3_CONTINENTS\"\]&access_token=OC\|$APP_ID\|$APP_SECRET"
{
"data": [{
"id": "1074233745960170",
"api_name": "VISIT_3_CONTINENTS",
"achievement_type": "BITFIELD",
"achievement_write_policy": "SERVER_AUTHORITATIVE",
"target": 3,
"bitfield_length": 7,
"is_archived": false,
"title": "Achievement Title",
"description": "How to earn me",
"unlocked_description_override": "You did it",
"is_secret": false,
"locked_image_uri": "https://scontent.oculuscdn.com/...",
"unlocked_image_uri": "https://scontent.oculuscdn.com/..."
}]
}
POST https://graph.oculus.com/$USER_ID/achievements| パラメーター | 必須/任意 | 説明 | 型 | 例 |
|---|---|---|---|---|
access_token | 必須 | OC|$APP_ID |$APP_SECRETを含むベアラトークン | 文字列 | “OC|1234|456789” |
api_name | 必須 | 更新するアチーブメント定義の名前。 | 文字列 | “VISIT_3_CONTINENTS” |
add_count | アチーブメントがcountタイプの場合は必須です。 | このアチーブメントの達成状況カウンターに追加する値。COUNTアチーブメントにのみ有効です。 | 整数 | 25 |
add_bits | アチーブメントがbitfieldタイプの場合は必須。 | このアチーブメントの進捗に追加するビット。BITFIELDアチーブメントにのみ有効です。 | 文字列 | “110001” |
force_unlock | 任意 - デフォルトはfalseです。 | 進捗状況に関係なく、直ちにアチーブメントをロック解除します。これは、常にSIMPLEアチーブメントをロック解除するために使用します。 | ブーリアン | “false” |
curl -X POST -d "access_token=OC|$APP_ID|$APP_SECRET" -d "api_name=MY_ACHIEVEMENT" -d "add_count=25" -d "force_unlock=true" https://graph.oculus.com/$USER_ID/achievements
{"id":"1074233745960170","api_name":"MY_ACHIEVEMENT","just_unlocked":true}
just_unlockedが含まれます。GET https://graph.oculus.com/$USER_ID/achievements| パラメーター | 必須/任意 | 説明 | 型 | 例 |
|---|---|---|---|---|
access_token | 必須 | OC|$APP_ID |$APP_SECRETを含むベアラトークン | 文字列 | “OC|1234|456789” |
api_names | 任意 | 取得するアチーブメント定義の名前。省略すると、すべてのアチーブメント定義が返されます。 | 文字列の配列 | [“VISIT_3_CONTINENTS”, “WALK_500_MILES”] |
fields | 任意 | 取得するフィールド名のコンマ区切りリスト。リストには、 id、unlock_time、is_unlocked、count_progressを含めることができます。省略すると、IDのみが返されます。 | 文字列 | “api_name,achievement_type” |
curl -X GET "https://graph.oculus.com/$USERID/achievements?access_token=OC\|$APP_ID\|$APP_SECRET&api_names=\[\"VISIT_3_CONTINENTS\"\]&fields=target,bitfield_progress,is_unlocked,unlock_time"
{
"data": [{
"id": "1074233745960170",
"bitfield_progress": "1001100",
"is_unlocked": true,
"unlock_time": 1459815726
}]
}
POST https://graph.oculus.com/achievement_remove_all| パラメーター | 必須/任意 | 説明 | 型 | 例 |
|---|---|---|---|---|
access_token | 必須 | OC|$APP_ID |$APP_SECRETを含むベアラトークン | 文字列 | “OC|1234|456789” |
user_id | 必須 | 削除するアチーブメントのユーザーID。 | 文字列 | “12345” |
curl -X POST "https://graph.oculus.com/achievement_remove_all?user_id=$USER_ID&access_token=OC\|$APP_ID\|$APP_SECRET"
{"success":true}
$APPIDや$APP_SECRETなどの$VARを、実際の値で置き換えてあるかどうかチェックする必要があります。実際の値は、[Developer Center (開発者センター)] > [Development (開発)] > [API]にあります。