任务系统模块
更新时间:2024-09-25
用户可以在元宇宙世界中完成各种任务,拿到对应的奖励。运营管理后台任务配置和发布可以参见文档 任务配置和发布
1.整体介绍
1.1. 见闻任务
永久任务,页签固定在任务页签的最顶端。

1.1. 见闻任务
活动任务,会展示活动海报及介绍,可以有多个,每个活动都可以配置有效时间,在有效时间内,用户可以完成多个任务,拿到对应的奖励。

2. 主要功能对应数资及脚本
| 脚本或dll | 端 | Prefab | 说明 | 功能示意图 |
|---|---|---|---|---|
| Baidu.Meta.MCK.Task.TaskDataManager | PC,Mobile ,VR | 任务数据管理器(单例) | ||
| Baidu.Meta.MCK.Task.TaskUIManager | PC,Mobile ,VR | 任务界面管理器(单例) | ||
| Baidu.Meta.MCK.Task.TaskPanel | PC,Mobile ,VR | TaskPanel.Prefab | 任务面板 | ![]() |
3. 客户端接口
代码:AvatarCreateService.cs
| 接口 | 参数 | 返回 | 说明 |
|---|---|---|---|
| _solveTaskFrozens | WorldTask | void | 更新冻结的任务 |
| _solveTaskDoings | WorldTask | void | 更新待完成的任务 |
| _solveTaskDels | WorldTask | void | 更新删除的任务 |
| _solveTaskDones | WorldTask | void | 更新已完成的任务 |
4.任务条件判断
| 接口名 | 说明 | 参数1 | 参数2 | 统计方式 |
|---|---|---|---|---|
| ItemNum | 指定持有道具数量 | 道具id | 道具数量 | 存量统计 |
| ItemType | 持有指定类型的道具 | 道具类型 | 条件判断 | |
| AddFriend | 添加好友成功 | 添加好友成功次数 | 行为发生时统计,一次性 | |
| FriendNum | 好友数量达到指定人数 | 数量 | 存量统计 | |
| OperatNpc | 对可交互NPC进行交互行为达到指定次数(后续有其他交互行为再扩充接口) | 交互物件id | 次数 | 行为发生时统计,一次性 |
| AccessArea | 到达指定的区域 | 配置staticarea表里的ID(围绕NPC设置一个区域) | 道具数量 | 条件判断 |
| TakePicturesCount | 拍照次数统计 | 次数 | 行为发生时统计,一次性 | |
| ShareCount | 分享次数统计 | 次数 | 行为发生时统计,一次性 | |
| ChatToFriends | 与好友互动次数(包括语音互动或分享照片互动都算) | 次数 | 行为发生时统计,一次性 | |
| EnterSpaceID | 进入指定的地图id几次 | 指定的地图id | 进入次数 | 行为发生时统计,一次性 |
| UseItemCount | 成功使用道具次数 | 指定道具id | 使用次数 | 行为发生时统计,一次性 |
| TakePicturesAreaCount | 进入指定区域拍照指定次数 | 指定的区域ID | 使用次数 | 行为发生时统计,一次性 |
5. 任务配置示例
5.1 交互类任务配置
与NPC交互类任务的配置方式 1、需要交互NPC拥有碰撞盒

2、在运营中台创建交付的NPC

3、修改客户端json 绑定客户端本地的业务逻辑
{
"id": "6000000416",//NPCID
"name": "交互测试",//功能说明
"prefab": "model/male3_101", //客户端交付的prefab路径
"config_detail": {
"function": {
"extra": [
"Hotfix.Standard.NPC.BaseNpc"//绑定类
],
"ClickCFunction": "interaction_request,#client_cmd ChunJieTuzhi05"//触发的function
}
}
}4、服务器function
{
"npc_list": "6000000416",//NPCID
"id": "6000000478",//开发者平台配置的NPCID
"desc": "点击交互完成任务",//说明
"name": "ChunJieTuzhi05",//任务名
"type": "no_effect_function",//含义为点了为null的交互指令 (如需其他交互命令,例如进行对话,进行采集需要其他对应配置)
"action": "",
"to_client": true,
"action_param": "",
"string_param": "",
"trigger_type": "client_cmd",
"trigger_param": ""
}5、在运营后台配置NPC的预制体(主工程注册在Addressables的NPC可以用在任意位置,如果是副本工程Addressables注册的NPC只能用在当前副本,其他副本取不到该NPC的资源) 6、在运营后台配置NPC的刷新位置 7、任务即可与该NPC进行点击交互
5.2 采集任务配置
详细流程可以查看 采集任务配置