首先,对于希望使用API模式进行数据采集的项目组而言,需要完成以下两个操作来实现采集模式的切换。
1. 在「GPM设置」-「阈值设置」中开启服务端的API模式
btn_deepmode_event. onClick.AddListener(()=> dmpanel.SetActive(true));
btn_dm_enable. onClick.AddListener(()=›
{
UWAGPM.BeginDeepTracking();
dmpanel.SetActive(false);
});
btn_dm_disable. onClick.AddListener(()=›
{
UWAGPM.EndDeepTracking();
dmpanel.SetActive(false);
});
针对指定场景开启异常数据上报
效果
代码
void OnSceneChanged(string sceneName)
{
if(!CustomGpmMgr.needDeepTrack)
return;
if(CustomGpmMgr.deepTracking)
UWAGPM.EndDeepTracking();
CustomGpmMgr. deepTracking =CustomGpmMgr.IsSceneToTrack(sceneName);
if(CustomGpmMgr.deepTracking)
UWAGPM.BeginDeepTracking();
}
CustomGpmMgr类是示例代码,非SDK提供,仅供参考
注:在“IsSceneToTrack”中,可以实现自定义的判断逻辑,例如:场景名是否为“Battle”;场景名是否在指定的HashSet中等。
案例
仅针对指定场景“00_mochuanlinju”场景、“1000_daditu”进行异常数据采集。
针对指定用户开/关实时截帧、自定义截帧分辨率
效果
代码
void OnDeepModeStart()
{
boolscreenCapture=CustomGpmMgr.IsUserToCaptureScreen(GameInfo.UserId);
UWAGPM.SetScreenShotEnabled(screenCapture,true); // 10 秒常规截图
UWAGPM.SetScreenShotEnabled(screenCapture,false); // 性能异常截图
if(screenCapture)
{
UWAGPM.SetScreenShotRatio(0.2f,false); // 10 秒常规截图
UWAGPM.SetScreenShotRatio(GameInfo. VIP ?0.4f:0.2f,true); // 性能异常截图
}
}
CustomGpmMgr类是示例代码,非SDK提供,仅供参考
注:在“IsSceneToTrack”中,可以实现自定义的判断逻辑,例如:场景名是否为“Battle”;场景名是否在指定的HashSet中等。
案例
1. 关闭异常截帧,仅开启每10秒一张的定时截帧
默认分辨率大小为30%的截帧效果
自定义事件
1. 针对特定场景上报信息,方便标记运行环境
效果
进入战斗时,上报使用的英雄、武器、玩家等级等信息。
代码
void OnBattleStart()
{
UWAGPM.AddCustomEvent("user info","battle"
"hero_id",GameInfo.HeroId,
"weapon_id",GameInfo.WeaponId,
"level",GameInfo.Level);
}
2. 针对特定步骤上报信息,方便标记特殊操作
效果
战斗中,英雄释放技能时,上报对应的技能ID。
代码
void OnSkillStart()
{
UWAGPM. AddCustomEvent ("skill _start","battle",
"skill_id", FightInfo.SkillId);
}
案例
角色释放技能时调用API上报玩家所在场景、释放的技能和当时的等级。
自定义阈值
针对这种情况,GPM 2.0也提供了可以针对不同场景、画质可以分开设置FPS阈值和PSS内存阈值的API,以便更加贴合项目组的实际性能监控需求。
1. 针对特定场景调整FPS的低帧阈值
效果
将lobby场景和battle场景的FPS低帧阈值分开设置,lobby场景下的低帧阈值为20帧,battle场景下的低帧阈值设为25帧。
代码
void OnSceneChanged(string sceneName)
{
//重置 FPS 低帧阈值
UWAGPM.SetThreshold(UWAGPM.MetricThresholdID.FPS_LOW,-1);
if(sceneName =="lobby")
{
UWAGPM.SetThreshold(UWAGPM.MetricThresholdID. FPS_LOW,20);
}
elseif(sceneName =="battle")
{
UWAGPM.SetThreshold(UWAGPM.MetricThresholdID.FPS_LOW,25);
}
}
2. 针对画质及目标帧率调整FPS和设备内存阈值
效果
将不同目标帧率的场景的FPS低帧阈值分开设置,目标帧率为30的低帧阈值设为25;目标帧率为60的低帧阈值设为45;
将不同画质场景下的PSS内存过高阈值分开设置,中等画质及以上的内存阈值设为4GB;中画质以下的内存阈值设为3GB。
代码
void OnQualityChanged(QualityLevel level)
{
// 重置 FPS 低帧阈值,设备内存阈值
UWAGPM.SetThreshold(UWAGPM.MetricThresholdID.FPS_LOW,-1);
UWAGPM.SetThreshold(UWAGPM.MetricThresholdID.PSS_MB,-1);
if(Application.targetFrameRate ==60)
UWAGPM.SetThreshold(UWAGPM.MetricThresholdID.FPS_LOW,45);
elseif(Application.targetFrameRate ==30)
UWAGPM.SetThreshold(UWAGPM.MetricThresholdID.FPS_LOW,25);
if(level ›=QualityLevel.Good)
UWAGPM.SetThreshold(UWAGPM.MetricThresholdID.PSS_MB,4096);
else
UWAGPM.SetThreshold(UWAGPM.MetricThresholdID.PSS_MB,3072);
}
案例
我们希望GPM 2.0的API模式能够为项目组提供更加自由、灵活的数据采集方式,帮助大家根据具体需求制定清晰的评价标准。通过这种方式,项目组能够更精准地识别和解决性能问题,从而有的放矢地提升玩家体验。
如果您的项目也希望体验GPM 2.0的强大功能,欢迎随时与UWA取得联系。我们将为您提供免费试用机会,并在试用期间全程支持服务搭建、数据分析与反馈,确保您能够充分体验GPM 2.0带来的价值。我们致力于为开发者提供更丰富的数据获取方式、更灵活的数据组合以及更精准的事件监控,助力游戏项目在性能优化和用户体验提升上取得显著进展。我们期待与开发者共同探索游戏性能监控与分析的全新领域,为玩家打造更加流畅、稳定、沉浸的游戏世界。
联系UWA:
邮件:sales@uwa4d.com
微信号:17502188376