| 成就类型 | Unreal 数值转换 | 示例 |
|---|---|---|
简单 | 已锁定:0,已解锁:100 | 无 |
计数 | 当前计数 * 100/目标值(最大值为 100) | 此类成就的目标值为 10。当用户有 5 次计数时,在 Unreal 中对应值的计算方法为 5x100/10 = 50 |
位域 | 字符串中“1”的数量 *100/目标值(最大值为 100) | 此类成就的 6 位中必须有 4 位进行了设置。用户的成就为 3 位 (000111) 时,在 Unreal 中对应值的计算方法为 3 * 100 / 4 = 75 |
DefaultEngine.ini。如需获取设置说明,请参阅平台 SDK:入门指南。WriteObject 中的值添加到成就进度中。仅支持 Int32、Int64、UInt32 和 UInt64 值。POST https://graph.oculus.com/$APPID/achievement_definitions| 参数 | 必要/可选 | 描述 | 类型 | 示例 |
|---|---|---|---|---|
access_token | 必要 | 包含 OC|$APP_ID |$APP_SECRET 的 Bearer 口令 | 字符串 | “OC|1234|456789” |
api_name | 必要 | 用于引用此 API 和客户端 SDK 中的成就的名称。这个字母数字字符串对应用来说必须是唯一的。如果成就存在,调用将会更新它。如果它不存在,调用将会使用此名称来创建成就。 | 字符串 | “VISIT_3_CONTINENTS” |
achievement_type | 必要 | 这是成就类型。有三种类型的成就,请参阅上面的描述获取关于不同类型的信息。 | 有 SIMPLE、COUNT、BITFIELD 值的枚举 | “SIMPLE” |
achievement_write_policy | 必要 | 确定谁可以写入成就进度。请参阅上面的描述获取关于两种不同写入策略的信息。 | 有 CLIENT_AUTHORITATIVE、SERVER_AUTHORITATIVE 值的枚举 | “CLIENT_AUTHORITATIVE” |
target | 如果 成就 achievement_type 是计数或位域,则为必要 | 要解锁的成就的事件发生次数。请参阅上面的描述获取关于目标的更多信息。 | 整数 | 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 的 Bearer 口令 | 字符串 | “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。如果省略,将只返回编号。 | 字符串 | “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 的 Bearer 口令 | 字符串 | “OC|1234|456789” |
api_name | 必要 | 要更新的成就的名称。 | 字符串 | “VISIT_3_CONTINENTS” |
add_count | 如果成就是计数类型,则为必要。 | 要为此成就填加到进度计数器的值。仅对计数成就有效。 | 整数 | 25 |
add_bits | 如果成就是位域类型,则为必要。 | 要为此成就填加到进度的位。仅对位域成就有效。 | 字符串 | “110001” |
force_unlock | 可选 - 默认是 false。 | 无论进度如何,立刻解锁成就。这必须用于解锁简单成就。 | 布尔值 | “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 的 Bearer 口令 | 字符串 | “OC|1234|456789” |
api_names | 可选 | 要获取的成就定义的名称。如果省略,将会返回所有成就定义。 | 字符串数组 | [“VISIT_3_CONTINENTS”, “WALK_500_MILES”] |
fields | 可选 | 如要检索的用逗号分隔的字段名称清单。可以包含: id、unlock_time、is_unlocked 和 count_progress。如果省略,将只返回编号。 | 字符串 | “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 的 Bearer 口令 | 字符串 | “OC|1234|456789” |
user_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}