Go to file
Blank de2404e25c [修改]1. 修改防裁剪 2024-09-19 00:54:27 +08:00
.github/workflows [增加]1. 增加镜像同步 2024-07-23 18:20:21 +08:00
Runtime [修改]1. 修改防裁剪 2024-09-19 00:54:27 +08:00
LICENSE.md [增加]1. 增加GA的统计支持 2024-06-20 22:19:53 +08:00
LICENSE.md.meta [增加]1. 增加GA的统计支持 2024-06-20 22:19:53 +08:00
README.md [增加]1. 增加GA的统计支持 2024-06-20 22:19:53 +08:00
README.md.meta [增加]1. 增加GA的统计支持 2024-06-20 22:19:53 +08:00
Runtime.meta [增加]1. 增加GA的统计支持 2024-06-20 22:19:53 +08:00
package.json [修改]1. 修改版本为1.0.2 2024-08-02 14:04:35 +08:00
package.json.meta [增加]1. 增加GA的统计支持 2024-06-20 22:19:53 +08:00

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);
}

使用事项

  • 请确保在使用组件的任何方法之前,组件已被正确初始化。
  • _isInitfalse,则不进行任何操作,确保了只有在组件初始化后事件上报或计时才有效作用。
  • 上报的事件名称应该具有代表性和唯一性,以确保数据分析的准确性。

集成提示

  • 工程中应引入命名空间GameFrameX.GameAnalytics.Runtime
  • 确保GameAnalyticsManager被正确实例化,并已经通过GameFramework注册。
  • 对于自定义字段,使用Dictionary<string, string>类型保持键值对的数据结构。

使用方式(任选其一)

  1. 直接在 manifest.json 的文件中的 dependencies 节点下添加以下内容

       {"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 目录下。会自动加载识别