Blank de2404e25c | ||
---|---|---|
.github/workflows | ||
Runtime | ||
LICENSE.md | ||
LICENSE.md.meta | ||
README.md | ||
README.md.meta | ||
Runtime.meta | ||
package.json | ||
package.json.meta |
README.md
HOMEPAGE
GameFrameX 的 GameAnalytics 游戏数据分析的组件
GameAnalytics 游戏数据分析的组件 (GameAnalytics Component) - 提供游戏开发者集成和使用游戏数据分析的功能的接口。
使用文档(文档编写于GPT4)
简介
GameAnalyticsComponent
是一个用于游戏数据分析的组件,它包含了不同类型的事件上报和计时器功能。该组件作为游戏框架的一部分,便于游戏开发者集成和使用游戏数据分析的功能。
初始化
在Unity的Awake
方法中,GameAnalyticsComponent
被初始化,并创建了一个GameAnalyticsManager
实例。通过调用Init
方法,完成具体的初始化过程,并设置_isInit
标志为true
,以确保后续的方法只在初始化之后被执行。
public void Init()
{
_gameAnalyticsManager.Init();
_isInit = true;
}
计时功能
开始计时
StartTimer
方法允许开发者为某个事件开始计时。在事件开始时调用此方法,并传入事件名称。
public void StartTimer(string eventName)
{
if (!_isInit)
{
return;
}
_gameAnalyticsManager.StartTimer(eventName);
}
结束计时
结束特定事件的计时,使用StopTimer
方法,并传入相应的事件名称。
public void StopTimer(string eventName)
{
if (!_isInit)
{
return;
}
_gameAnalyticsManager.StopTimer(eventName);
}
事件上报
简单事件上报
用于上报不包含额外数据的简单事件。只需调用Event
方法并传入事件名称。
public void Event(string eventName)
{
if (!_isInit)
{
return;
}
_gameAnalyticsManager.Event(eventName);
}
带数值的事件上报
上报包含数值信息的事件。调用Event
方法,并传入事件名称以及相关的数值。
public void Event(string eventName, float eventValue)
{
if (!_isInit)
{
return;
}
_gameAnalyticsManager.Event(eventName, eventValue);
}
带自定义字段的事件上报
上报包含自定义字段的事件。在调用Event
方法时传入事件名称和一个字典类型的自定义字段数据。
public void Event(string eventName, Dictionary<string, string> customF)
{
if (!_isInit)
{
return;
}
// 将字符串字典转换为对象字典
var value = new Dictionary<string, object>();
foreach (var kv in customF)
{
value[kv.Key] = kv.Value;
}
_gameAnalyticsManager.Event(eventName, value);
}
带数值和自定义字段的事件上报
上报一个同时包含数值信息和自定义字段的事件,需要调用Event
方法并传入事件名称、事件数值以及自定义字段的字典。
public void Event(string eventName, float eventValue, Dictionary<string, string> customF)
{
if (!_isInit)
{
return;
}
var value = new Dictionary<string, object>();
foreach (var kv in customF)
{
value[kv.Key] = kv.Value;
}
_gameAnalyticsManager.Event(eventName, eventValue, value);
}
使用事项
- 请确保在使用组件的任何方法之前,组件已被正确初始化。
- 若
_isInit
为false
,则不进行任何操作,确保了只有在组件初始化后事件上报或计时才有效作用。 - 上报的事件名称应该具有代表性和唯一性,以确保数据分析的准确性。
集成提示
- 工程中应引入命名空间
GameFrameX.GameAnalytics.Runtime
。 - 确保
GameAnalyticsManager
被正确实例化,并已经通过GameFramework
注册。 - 对于自定义字段,使用
Dictionary<string, string>
类型保持键值对的数据结构。
使用方式(任选其一)
-
直接在
manifest.json
的文件中的dependencies
节点下添加以下内容{"com.gameframex.unity.gameanalytics": "https://github.com/AlianBlank/com.gameframex.unity.gameanalytics.git"}
-
在Unity 的
Packages Manager
中使用Git URL
的方式添加库,地址为:https://github.com/AlianBlank/com.gameframex.unity.gameanalytics.git -
直接下载仓库放置到Unity 项目的
Packages
目录下。会自动加载识别