https://github.com/gameframex/com.gameframex.unity.gameanalytics
https://github.com/gameframex/com.gameframex.unity.gameanalytics
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/gameframex/com.gameframex.unity.gameanalytics
- Owner: GameFrameX
- License: apache-2.0
- Created: 2024-04-10T02:02:27.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-30T15:51:00.000Z (about 1 year ago)
- Last Synced: 2025-05-30T22:16:45.998Z (about 1 year ago)
- Language: C#
- Size: 57.6 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
## HOMEPAGE
GameFrameX 的 GameAnalytics 游戏数据分析的组件
**GameAnalytics 游戏数据分析的组件 (GameAnalytics Component)** - 提供游戏开发者集成和使用游戏数据分析的功能的接口。
# 使用文档(文档编写于GPT4)
## 简介
`GameAnalyticsComponent`是一个用于游戏数据分析的组件,它包含了不同类型的事件上报和计时器功能。该组件作为游戏框架的一部分,便于游戏开发者集成和使用游戏数据分析的功能。
## 初始化
在Unity的`Awake`方法中,`GameAnalyticsComponent`被初始化,并创建了一个`GameAnalyticsManager`实例。通过调用`Init`方法,完成具体的初始化过程,并设置`_isInit`标志为`true`,以确保后续的方法只在初始化之后被执行。
```csharp
public void Init()
{
_gameAnalyticsManager.Init();
_isInit = true;
}
```
## 计时功能
### 开始计时
`StartTimer`方法允许开发者为某个事件开始计时。在事件开始时调用此方法,并传入事件名称。
```csharp
public void StartTimer(string eventName)
{
if (!_isInit)
{
return;
}
_gameAnalyticsManager.StartTimer(eventName);
}
```
### 结束计时
结束特定事件的计时,使用`StopTimer`方法,并传入相应的事件名称。
```csharp
public void StopTimer(string eventName)
{
if (!_isInit)
{
return;
}
_gameAnalyticsManager.StopTimer(eventName);
}
```
## 事件上报
### 简单事件上报
用于上报不包含额外数据的简单事件。只需调用`Event`方法并传入事件名称。
```csharp
public void Event(string eventName)
{
if (!_isInit)
{
return;
}
_gameAnalyticsManager.Event(eventName);
}
```
### 带数值的事件上报
上报包含数值信息的事件。调用`Event`方法,并传入事件名称以及相关的数值。
```csharp
public void Event(string eventName, float eventValue)
{
if (!_isInit)
{
return;
}
_gameAnalyticsManager.Event(eventName, eventValue);
}
```
### 带自定义字段的事件上报
上报包含自定义字段的事件。在调用`Event`方法时传入事件名称和一个字典类型的自定义字段数据。
```csharp
public void Event(string eventName, Dictionary customF)
{
if (!_isInit)
{
return;
}
// 将字符串字典转换为对象字典
var value = new Dictionary();
foreach (var kv in customF)
{
value[kv.Key] = kv.Value;
}
_gameAnalyticsManager.Event(eventName, value);
}
```
### 带数值和自定义字段的事件上报
上报一个同时包含数值信息和自定义字段的事件,需要调用`Event`方法并传入事件名称、事件数值以及自定义字段的字典。
```csharp
public void Event(string eventName, float eventValue, Dictionary customF)
{
if (!_isInit)
{
return;
}
var value = new Dictionary();
foreach (var kv in customF)
{
value[kv.Key] = kv.Value;
}
_gameAnalyticsManager.Event(eventName, eventValue, value);
}
```
## 使用事项
- 请确保在使用组件的任何方法之前,组件已被正确初始化。
- 若`_isInit`为`false`,则不进行任何操作,确保了只有在组件初始化后事件上报或计时才有效作用。
- 上报的事件名称应该具有代表性和唯一性,以确保数据分析的准确性。
## 集成提示
- 工程中应引入命名空间`GameFrameX.GameAnalytics.Runtime`。
- 确保`GameAnalyticsManager`被正确实例化,并已经通过`GameFramework`注册。
- 对于自定义字段,使用`Dictionary`类型保持键值对的数据结构。
# 使用方式(任选其一)
1. 直接在 `manifest.json` 的文件中的 `dependencies` 节点下添加以下内容
```json
{"com.gameframex.unity.gameanalytics": "https://github.com/AlianBlank/com.gameframex.unity.gameanalytics.git"}
```
2. 在Unity 的`Packages Manager` 中使用`Git URL` 的方式添加库,地址为:https://github.com/AlianBlank/com.gameframex.unity.gameanalytics.git
3. 直接下载仓库放置到Unity 项目的`Packages` 目录下。会自动加载识别