Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
UnityAnalytics for Utage Custom Event
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Analytics;
namespace Utage
{
[RequireComponent(typeof(AdvEngine))]
public class UnityAnalyticsCommand : AdvCustomCommandManager
{
public static string analyticsCustomEventName = "UtageScenario";
public override void OnBootInit()
{
Utage.AdvCommandParser.OnCreateCustomCommnadFromID += CreateCustomCommand;
}
//AdvEngineのクリア処理のときに呼ばれる
public override void OnClear()
{
}
//カスタムコマンドの作成用コールバック
public void CreateCustomCommand(string id, StringGridRow row, AdvSettingDataManager dataManager, ref AdvCommand command)
{
switch (id)
{
//新しい名前のコマンドを作る
case "UnityAnalytics":
command = new AdvCommandUnityAnalytics(row);
break;
}
}
}
public class AdvCommandUnityAnalytics : AdvCommand
{
int rowNumber;
string name;
public AdvCommandUnityAnalytics(StringGridRow row)
: base(row)
{
rowNumber = row.RowIndex;
name = row.Grid.Name;
}
//コマンド実行
public override void DoCommand(AdvEngine engine)
{
// 送信データを作成
Dictionary<string, object> eventData = new Dictionary<string, object>();
eventData.Add ("rowNumber", rowNumber); // 行番号
eventData.Add ("name", name); // シナリオファイル・シートの名前
// パラメーターを取得
AdvParamStruct advParamStruct = engine.Param.GetDefault ();
List<AdvParamData> defaultList = advParamStruct.GetFileTypeList (AdvParamData.FileType.Default);
foreach (AdvParamData data in defaultList) {
eventData.Add (data.Key, data.Parameter); // デフォルトパラメータ
}
List<AdvParamData> systemList = advParamStruct.GetFileTypeList (AdvParamData.FileType.System);
foreach (AdvParamData data in systemList) {
eventData.Add (data.Key, data.Parameter); // システムパラメータ
}
// カスタムイベントを送信
Analytics.CustomEvent (UnityAnalyticsCommand.analyticsCustomEventName, eventData);
}
}
}
@yasuyuki-kamata

This comment has been minimized.

Copy link
Owner Author

commented Jun 19, 2016

UnityAnalytics for Utage Custom Event

Unity用ビジュアルノベルツール『宴』で使用できるUnityAnalyticsのカスタムイベントスクリプトです。

使い方

  1. このスクリプト(UnityAnalyticsCommand.cs)をプロジェクトにインポート
  2. UnityAnalyticsCommand コンポーネントを AdvEngine コンポーネントと同じゲームオブジェクトにアタッチ
  3. Excelのシートで UnityAnalytics というコマンドが使用できるようになります

できること

カスタムコマンドが発火するタイミングで次のデータをUnityAnalyticsに送信します。

  • シナリオファイル・シートの名前
  • 行数
  • すべてのデフォルトパラメータのキーと値
  • すべてのシステムパラメータのキーと値

パラメータについて

Default: 通常のセーブロードで使用。複数を切り替えて使うことができる。通常はこのセーブデータにパラメーターの状態もセーブされる
System: ゲームが起動した直後に自動的にロードされ、各ページの状態やギャラリーモードの解放状態など、ゲーム全般で使用するセーブデータ。
パラメーターのFileTypeを”System”とすると、そのパラメーターはシステムセーブデータにセーブされ、ゲーム中であれば共通で使える値となる。
これは「クリア回数」などゲーム全般で使いたいパラメーターを作ることを想定している。

抜粋:http://madnesslabo.net/utage/?page_id=1715

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.