├── .DS_Store
├── .gitignore
├── CHANGELOG.md
├── CHANGELOG.md.meta
├── Documentation~
└── index.md
├── Editor.meta
├── Editor
├── Android.meta
├── Android
│ ├── Dependencies.xml
│ └── Dependencies.xml.meta
├── GA_AssetPostprocessor.cs
├── GA_AssetPostprocessor.cs.meta
├── GA_AutoRun.cs
├── GA_AutoRun.cs.meta
├── GA_ContinuationManager.cs
├── GA_ContinuationManager.cs.meta
├── GA_EditorUtilities.cs
├── GA_EditorUtilities.cs.meta
├── GA_Menu.cs
├── GA_Menu.cs.meta
├── GA_PostprocessBuild.cs
├── GA_PostprocessBuild.cs.meta
├── GA_SettingsInspector.cs
├── GA_SettingsInspector.cs.meta
├── GA_SignUp.cs
├── GA_SignUp.cs.meta
├── GA_UpdateWindow.cs
├── GA_UpdateWindow.cs.meta
├── GameAnalyticsInspector.cs
├── GameAnalyticsInspector.cs.meta
├── Playmaker.meta
├── Playmaker
│ ├── PlayMakerPresenceCheck.cs
│ ├── PlayMakerPresenceCheck.cs.meta
│ ├── SendProgressionEventActionEditor.cs
│ ├── SendProgressionEventActionEditor.cs.meta
│ ├── SendResourceEventActionEditor.cs
│ └── SendResourceEventActionEditor.cs.meta
├── com.gameanalytics.sdk.Editor.asmdef
└── com.gameanalytics.sdk.Editor.asmdef.meta
├── Gizmos.meta
├── Gizmos
├── GameAnalytics.meta
└── GameAnalytics
│ ├── Images.meta
│ ├── Images
│ ├── active.png
│ ├── active.png.meta
│ ├── default.png
│ ├── default.png.meta
│ ├── delete.png
│ ├── delete.png.meta
│ ├── game.png
│ ├── game.png.meta
│ ├── home.png
│ ├── home.png.meta
│ ├── info.png
│ ├── info.png.meta
│ ├── instrument.png
│ ├── instrument.png.meta
│ ├── question.png
│ ├── question.png.meta
│ ├── update_orange.png
│ ├── update_orange.png.meta
│ ├── user.png
│ └── user.png.meta
│ ├── gaLogo.png
│ └── gaLogo.png.meta
├── GooglePackages.meta
├── GooglePackages
├── com.google.external-dependency-manager-1.2.168.tgz
└── com.google.external-dependency-manager-1.2.168.tgz.meta
├── LICENSE.md
├── LICENSE.md.meta
├── README.md
├── README.md.meta
├── Runtime.meta
├── Runtime
├── Android.meta
├── Android
│ ├── gameanalytics.aar
│ ├── gameanalytics.aar.meta
│ ├── unity_gameanalytics.jar
│ └── unity_gameanalytics.jar.meta
├── GameAnalytics.dll
├── GameAnalytics.dll.meta
├── Linux.meta
├── Linux
│ ├── sqlite3.so
│ └── sqlite3.so.meta
├── Playmaker.meta
├── Playmaker
│ ├── Examples.meta
│ ├── Examples
│ │ ├── GameAnalyticsPlayMakerDemo.unitypackage
│ │ └── GameAnalyticsPlayMakerDemo.unitypackage.meta
│ ├── GAInitialize.cs
│ ├── GAInitialize.cs.meta
│ ├── GetABTestingId.cs
│ ├── GetABTestingId.cs.meta
│ ├── GetABTestingVariantId.cs
│ ├── GetABTestingVariantId.cs.meta
│ ├── GetRemoteConfigsValueAsString.cs
│ ├── GetRemoteConfigsValueAsString.cs.meta
│ ├── IsRemoteConfigsReady.cs
│ ├── IsRemoteConfigsReady.cs.meta
│ ├── SendAdEvent.cs
│ ├── SendAdEvent.cs.meta
│ ├── SendBusinessEvent.cs
│ ├── SendBusinessEvent.cs.meta
│ ├── SendDesignEvent.cs
│ ├── SendDesignEvent.cs.meta
│ ├── SendErrorEvent.cs
│ ├── SendErrorEvent.cs.meta
│ ├── SendProgressionEvent.cs
│ ├── SendProgressionEvent.cs.meta
│ ├── SendResourceEvent.cs
│ ├── SendResourceEvent.cs.meta
│ ├── SetCustomDimension.cs
│ └── SetCustomDimension.cs.meta
├── Prefabs.meta
├── Prefabs
│ ├── GameAnalytics.prefab
│ └── GameAnalytics.prefab.meta
├── SamsungTV.meta
├── SamsungTV
│ ├── GameAnalytics.SamsungTV.dll
│ ├── GameAnalytics.SamsungTV.dll.meta
│ ├── Mono.Data.Sqlite.dll
│ ├── Mono.Data.Sqlite.dll.meta
│ ├── sqlite3.c
│ ├── sqlite3.c.meta
│ ├── sqlite3.h
│ └── sqlite3.h.meta
├── Scripts.meta
├── Scripts
│ ├── ATT.meta
│ ├── ATT
│ │ ├── GameAnalyticsATTClient.cs
│ │ ├── GameAnalyticsATTClient.cs.meta
│ │ ├── GameAnalyticsATTObjCBridge.cs
│ │ └── GameAnalyticsATTObjCBridge.cs.meta
│ ├── Enums.cs
│ ├── Enums.cs.meta
│ ├── Events.meta
│ ├── Events
│ │ ├── GAValidator.cs
│ │ ├── GAValidator.cs.meta
│ │ ├── GA_Ads.cs
│ │ ├── GA_Ads.cs.meta
│ │ ├── GA_Business.cs
│ │ ├── GA_Business.cs.meta
│ │ ├── GA_Debug.cs
│ │ ├── GA_Debug.cs.meta
│ │ ├── GA_Design.cs
│ │ ├── GA_Design.cs.meta
│ │ ├── GA_Error.cs
│ │ ├── GA_Error.cs.meta
│ │ ├── GA_Progression.cs
│ │ ├── GA_Progression.cs.meta
│ │ ├── GA_Resource.cs
│ │ ├── GA_Resource.cs.meta
│ │ ├── GA_Setup.cs
│ │ ├── GA_Setup.cs.meta
│ │ ├── GA_SpecialEvents.cs
│ │ └── GA_SpecialEvents.cs.meta
│ ├── GameAnalytics.cs
│ ├── GameAnalytics.cs.meta
│ ├── IGameAnalyticsATTListener.cs
│ ├── IGameAnalyticsATTListener.cs.meta
│ ├── Setup.meta
│ ├── Setup
│ │ ├── Settings.cs
│ │ └── Settings.cs.meta
│ ├── State.meta
│ ├── State
│ │ ├── GAState.cs
│ │ └── GAState.cs.meta
│ ├── Utilities.meta
│ ├── Utilities
│ │ ├── GA_MiniJson.cs
│ │ └── GA_MiniJson.cs.meta
│ ├── Wrapper.meta
│ └── Wrapper
│ │ ├── GA_AndroidWrapper.cs
│ │ ├── GA_AndroidWrapper.cs.meta
│ │ ├── GA_MonoWrapper.cs
│ │ ├── GA_MonoWrapper.cs.meta
│ │ ├── GA_TizenWrapper.cs
│ │ ├── GA_TizenWrapper.cs.meta
│ │ ├── GA_UWPWrapper.cs
│ │ ├── GA_UWPWrapper.cs.meta
│ │ ├── GA_WebGLWrapper.cs
│ │ ├── GA_WebGLWrapper.cs.meta
│ │ ├── GA_Wrapper.cs
│ │ ├── GA_Wrapper.cs.meta
│ │ ├── GA_iOSWrapper.cs
│ │ ├── GA_iOSWrapper.cs.meta
│ │ ├── GA_tvOSWrapper.cs
│ │ └── GA_tvOSWrapper.cs.meta
├── Tizen.meta
├── Tizen
│ ├── libGameAnalytics.a
│ └── libGameAnalytics.a.meta
├── WSA.meta
├── WSA
│ ├── ARM.meta
│ ├── ARM
│ │ ├── GameAnalytics.UWP.dll
│ │ └── GameAnalytics.UWP.dll.meta
│ ├── x64.meta
│ ├── x64
│ │ ├── GameAnalytics.UWP.dll
│ │ └── GameAnalytics.UWP.dll.meta
│ ├── x86.meta
│ └── x86
│ │ ├── GameAnalytics.UWP.dll
│ │ └── GameAnalytics.UWP.dll.meta
├── WebGL.meta
├── WebGL
│ ├── GameAnalytics.jspre
│ ├── GameAnalytics.jspre.meta
│ ├── GameAnalyticsUnity.jslib
│ ├── GameAnalyticsUnity.jslib.meta
│ ├── GameAnalyticsUtils.jspre
│ └── GameAnalyticsUtils.jspre.meta
├── Windows.meta
├── Windows
│ ├── x64.meta
│ ├── x64
│ │ ├── sqlite3.dll
│ │ └── sqlite3.dll.meta
│ ├── x86.meta
│ └── x86
│ │ ├── sqlite3.dll
│ │ └── sqlite3.dll.meta
├── com.gameanalytics.sdk.Runtime.asmdef
├── com.gameanalytics.sdk.Runtime.asmdef.meta
├── iOS.meta
├── iOS
│ ├── GameAnalytics.h
│ ├── GameAnalytics.h.meta
│ ├── GameAnalytics.xcprivacy
│ ├── GameAnalytics.xcprivacy.meta
│ ├── GameAnalyticsATTObjCBridge.h
│ ├── GameAnalyticsATTObjCBridge.h.meta
│ ├── GameAnalyticsATTObjCBridge.m
│ ├── GameAnalyticsATTObjCBridge.m.meta
│ ├── GameAnalyticsHyperBidHelper.m
│ ├── GameAnalyticsHyperBidHelper.m.meta
│ ├── GameAnalyticsTopOnHelper.m
│ ├── GameAnalyticsTopOnHelper.m.meta
│ ├── GameAnalyticsUnity.m
│ ├── GameAnalyticsUnity.m.meta
│ ├── libGameAnalytics.a
│ └── libGameAnalytics.a.meta
├── tvOS.meta
└── tvOS
│ ├── GameAnalyticsTVOS.h
│ ├── GameAnalyticsTVOS.h.meta
│ ├── GameAnalyticsTVOSUnity.m
│ ├── GameAnalyticsTVOSUnity.m.meta
│ ├── libGameAnalyticsTVOS.a
│ └── libGameAnalyticsTVOS.a.meta
├── package.json
└── package.json.meta
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | !Documentation~
2 |
--------------------------------------------------------------------------------
/CHANGELOG.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b80fcd3c2bb2841c5bce7e35c4ea0c34
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Documentation~/index.md:
--------------------------------------------------------------------------------
1 | Review the Unity SDK documentation at:
2 | https://gameanalytics.com/docs/unity-sdk
3 |
--------------------------------------------------------------------------------
/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f92e61ab4c58641e1a8f5b56c6552567
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Editor/Android.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7f4ee4210c9704d2a9a6b650fefc3a07
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Editor/Android/Dependencies.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Editor/Android/Dependencies.xml.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f4d3591460e6344cca6fe66ecbde645f
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Editor/GA_AssetPostprocessor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a2403619fc556407983e282336344f15
3 | timeCreated: 1457357714
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Editor/GA_AutoRun.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEditor;
3 |
4 | namespace GameAnalyticsSDK.Editor
5 | {
6 | public class GA_Autorun : AssetPostprocessor
7 | {
8 | static void OnPostprocessAllAssets ( string[] importedAssets,string[] deletedAssets,string[] movedAssets,string[] movedFromAssetPaths)
9 | {
10 | string[] splitPath = Application.dataPath.Split('/');
11 |
12 | if (!splitPath[splitPath.Length - 2].Equals("ga_unity_wrapper copy"))
13 | {
14 | GA_SettingsInspector.CheckForUpdates();
15 | }
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Editor/GA_AutoRun.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0a3d477cdf26e4516ab204fc8fd9a841
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/GA_ContinuationManager.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 |
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Linq;
7 | using UnityEditor;
8 |
9 | namespace GameAnalyticsSDK
10 | {
11 | //Inspired from answer on answers.unity3d.com: http://answers.unity3d.com/questions/221651/yielding-with-www-in-editor.html
12 | public static class GA_ContinuationManager
13 | {
14 | private class EditorCoroutine
15 | {
16 | public EditorCoroutine(IEnumerator routine, Func done)
17 | {
18 | Routine = routine;
19 | Done = done;
20 | }
21 | public IEnumerator Routine { get; private set; }
22 | public Func Done {get; private set;}
23 | public Action ContinueWith { get; private set; }
24 | }
25 |
26 | private static readonly List jobs = new List();
27 |
28 | public static void StartCoroutine(IEnumerator routine,Func done)
29 | {
30 | if (!jobs.Any())
31 | {
32 | EditorApplication.update += Update;
33 | }
34 | jobs.Add(new EditorCoroutine(routine,done));
35 | }
36 |
37 | private static void Update()
38 | {
39 | for (int i = jobs.Count-1; i>=0; --i)
40 | {
41 | var jobIt = jobs[i];
42 | #if UNITY_2017_1_OR_NEWER
43 | if (!jobIt.Routine.MoveNext()) //movenext is false if coroutine completed
44 | {
45 | jobs.RemoveAt(i);
46 | }
47 | #else
48 | if (jobIt.Done())
49 | {
50 | if (!jobIt.Routine.MoveNext()) //movenext is false if coroutine completed
51 | {
52 | Debug.Log("GA_ContinuationManager.Update: Routine finished");
53 | jobs.RemoveAt(i);
54 | }
55 | }
56 | #endif
57 | }
58 | if (!jobs.Any())
59 | {
60 | EditorApplication.update -= Update;
61 | }
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/Editor/GA_ContinuationManager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 546155fc8c8e946beb7aa56aa713067c
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/GA_EditorUtilities.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System;
4 | using System.Collections.Generic;
5 |
6 | namespace GameAnalyticsSDK.Editor
7 | {
8 | public static class GA_EditorUtilities {
9 |
10 | private const string XCaller = "unity";
11 | private const string XCallerKey = "X-Caller";
12 | private const string XCallerVersionKey = "X-Caller-Version";
13 | private const string XCallerPlatformKey = "X-Caller-Platform";
14 | private const string XAuthorizationKey = "X-Authorization";
15 |
16 | private static string XCallerVersion
17 | {
18 | get {
19 | return Application.unityVersion;
20 | }
21 | }
22 |
23 | private static string XCallerPlatform
24 | {
25 | get {
26 | EPlatform platform = EPlatform.Windows;
27 |
28 | PlatformID platformId = Environment.OSVersion.Platform;
29 |
30 | if (platformId == PlatformID.MacOSX) {
31 | platform = EPlatform.Mac;
32 | }
33 | else if (platformId == PlatformID.Unix) {
34 | platform = EPlatform.Linux;
35 | }
36 | else if (platformId == PlatformID.Win32NT ||
37 | platformId == PlatformID.Win32S ||
38 | platformId == PlatformID.Win32Windows ||
39 | platformId == PlatformID.WinCE) {
40 |
41 | platform = EPlatform.Windows;
42 | }
43 |
44 | return platform.ToString ();
45 | }
46 | }
47 |
48 | public static Dictionary WWWHeaders()
49 | {
50 | Dictionary result = new Dictionary ();
51 | result [XCallerKey] = XCaller;
52 | result [XCallerVersionKey] = XCallerVersion;
53 | result [XCallerPlatformKey] = XCallerPlatform;
54 |
55 | return result;
56 | }
57 |
58 | public static Dictionary WWWHeadersWithAuthorization(string token)
59 | {
60 | Dictionary result = new Dictionary ();
61 | result [XCallerKey] = XCaller;
62 | result [XCallerVersionKey] = XCallerVersion;
63 | result [XCallerPlatformKey] = XCallerPlatform;
64 | result [XAuthorizationKey] = token;
65 |
66 | return result;
67 | }
68 | }
69 |
70 | public enum EPlatform
71 | {
72 | Windows,
73 | Mac,
74 | Linux
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/Editor/GA_EditorUtilities.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dfd276755e3d24398b20a727ba63f40a
3 | timeCreated: 1433250864
4 | licenseType: Free
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Editor/GA_Menu.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEditor;
3 | using System.IO;
4 | using System.Text.RegularExpressions;
5 |
6 | namespace GameAnalyticsSDK.Editor
7 | {
8 | public static class GA_Menu
9 | {
10 | [MenuItem ("Window/GameAnalytics/Select Settings", false, 0)]
11 | static void SelectGASettings ()
12 | {
13 | Selection.activeObject = GameAnalytics.SettingsGA;
14 | }
15 |
16 | [MenuItem ("Window/GameAnalytics/Setup Guide", false, 100)]
17 | static void SetupAndTour ()
18 | {
19 | GA_SignUp signup = ScriptableObject.CreateInstance ();
20 | signup.maxSize = new Vector2(640, 600);
21 | signup.minSize = new Vector2(640, 600);
22 |
23 | signup.titleContent = new GUIContent ("GameAnalytics - Setup Guide");
24 | signup.ShowUtility ();
25 | signup.Opened();
26 |
27 | signup.SwitchToGuideStep();
28 | }
29 |
30 | [MenuItem ("Window/GameAnalytics/Create GameAnalytics Object", false, 200)]
31 | static void AddGASystemTracker ()
32 | {
33 | if (Object.FindObjectOfType (typeof(GameAnalytics)) == null)
34 | {
35 | GameObject go = PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath(GameAnalytics.WhereIs("GameAnalytics.prefab", "Prefab"), typeof(GameObject))) as GameObject;
36 | go.name = "GameAnalytics";
37 | Selection.activeObject = go;
38 | Undo.RegisterCreatedObjectUndo(go, "Created GameAnalytics Object");
39 | }
40 | else
41 | {
42 | Debug.LogWarning ("A GameAnalytics object already exists in this scene - you should never have more than one per scene!");
43 | }
44 | }
45 |
46 | [MenuItem ("Window/GameAnalytics/PlayMaker/Toggle Scripts", false, 400)]
47 | static void TogglePlayMaker ()
48 | {
49 | bool enabled = false;
50 | bool fail = false;
51 |
52 | string searchText = "#if false";
53 | string replaceText = "#if true";
54 |
55 | string[] _files = new string[] {
56 | "GAInitialize.cs",
57 | "GetABTestingId.cs",
58 | "GetABTestingVariantId.cs",
59 | "GetRemoteConfigsValueAsString.cs",
60 | "IsRemoteConfigsReady.cs",
61 | "SendAdEvent.cs",
62 | "SendBusinessEvent.cs",
63 | "SendDesignEvent.cs",
64 | "SendErrorEvent.cs",
65 | "SendProgressionEvent.cs",
66 | "SendResourceEvent.cs",
67 | "SetCustomDimension.cs",
68 | "SendProgressionEventActionEditor.cs",
69 | "SendResourceEventActionEditor.cs"
70 | };
71 |
72 | foreach(string _file in _files)
73 | {
74 | try {
75 | enabled = ReplaceInFile (GameAnalytics.WhereIs(_file, "Script"), searchText, replaceText);
76 | } catch {
77 | Debug.Log("Failed to toggle "+_file);
78 | fail = true;
79 | }
80 | }
81 |
82 | AssetDatabase.Refresh();
83 |
84 | if (fail)
85 | {
86 | PlayMakerPresenceCheck.ResetPrefs();
87 | Debug.Log("Failed to toggle PlayMaker Scripts.");
88 | }else if (enabled)
89 | {
90 | Debug.Log("Enabled PlayMaker Scripts.");
91 | }else
92 | {
93 | PlayMakerPresenceCheck.ResetPrefs();
94 | Debug.Log("Disabled PlayMaker Scripts.");
95 | }
96 | }
97 |
98 | public static bool ReplaceInFile (string filePath, string searchText, string replaceText)
99 | {
100 | bool enabled = false;
101 |
102 | StreamReader reader = new StreamReader (filePath);
103 | string content = reader.ReadToEnd ();
104 | reader.Close ();
105 |
106 | if (content.StartsWith(searchText))
107 | {
108 | enabled = true;
109 | content = Regex.Replace (content, searchText, replaceText);
110 | }
111 | else
112 | {
113 | enabled = false;
114 | content = Regex.Replace (content, replaceText, searchText);
115 | }
116 |
117 | StreamWriter writer = new StreamWriter (filePath);
118 | writer.Write (content);
119 | writer.Close ();
120 |
121 | return enabled;
122 | }
123 | }
124 | }
125 |
--------------------------------------------------------------------------------
/Editor/GA_Menu.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 406a6696e05cc447c8d6a01396d21b90
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/GA_PostprocessBuild.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 19da6243a1a7449a585f5f945b7a1f94
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/GA_SettingsInspector.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 771d45ab6687246f4ac00b5bf537e520
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/GA_SignUp.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8badeee0f8f58488c94706222ee1e6fb
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/GA_UpdateWindow.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using UnityEditor;
4 | using System.Collections.Generic;
5 | using GameAnalyticsSDK.Setup;
6 |
7 | namespace GameAnalyticsSDK.Editor
8 | {
9 | public class GA_UpdateWindow : EditorWindow
10 | {
11 | private GUIContent _close = new GUIContent("Skip", "Skip this version.");
12 | private GUIContent _download = new GUIContent("Download Page", "Open the GameAnalytics download support page.");
13 | //private GUIContent _assetStore = new GUIContent("AssetStore", "Open Unity Asset Store page in a browser window.");
14 |
15 | private Vector2 _scrollPos;
16 |
17 | void OnGUI ()
18 | {
19 | GUILayout.BeginHorizontal();
20 |
21 | GUILayout.Label(GameAnalytics.SettingsGA.Logo);
22 |
23 | GUILayout.BeginVertical();
24 |
25 | GUILayout.Label("A new version of the GameAnalytics Unity SDK is available");
26 |
27 | EditorGUILayout.Space();
28 |
29 | GUILayout.Label("Currently installed version: " + GameAnalyticsSDK.Setup.Settings.VERSION);
30 | GUILayout.Label("Latest version: " + GameAnalytics.SettingsGA.NewVersion);
31 |
32 | EditorGUILayout.Space();
33 |
34 | GUILayout.Label("Changes:");
35 |
36 | EditorGUILayout.Space();
37 |
38 | //EditorGUILayout.BeginVertical();
39 |
40 | _scrollPos = EditorGUILayout.BeginScrollView(_scrollPos, GUILayout.Width (320), GUILayout.Height (160));
41 | GUILayout.Label(new GUIContent(GameAnalytics.SettingsGA.Changes), EditorStyles.wordWrappedLabel);
42 | EditorGUILayout.EndScrollView();
43 |
44 | //EditorGUILayout.EndVertical();
45 |
46 | EditorGUILayout.Space();
47 |
48 | GUILayout.Label("You can download the latest version from the GameAnalytics download support page.", EditorStyles.wordWrappedMiniLabel, GUILayout.MaxWidth(320));
49 |
50 | EditorGUILayout.Space();
51 |
52 | GUILayout.BeginHorizontal();
53 |
54 | /*if (GUILayout.Button(_assetStore, GUILayout.MaxWidth(115)))
55 | {
56 | Application.OpenURL("https://www.assetstore.unity3d.com/#/content/6755");
57 | }*/
58 |
59 | if (GUILayout.Button(_download, GUILayout.MaxWidth(115)))
60 | {
61 | Application.OpenURL("http://download.gameanalytics.com/unity/GA_SDK_UNITY.unitypackage");
62 | }
63 |
64 | if (GUILayout.Button(_close, GUILayout.MaxWidth(72)))
65 | {
66 | EditorPrefs.SetString("ga_skip_version"+"-"+Application.dataPath, GameAnalytics.SettingsGA.NewVersion);
67 | Close();
68 | }
69 |
70 | GUILayout.EndHorizontal();
71 |
72 | GUILayout.EndVertical();
73 |
74 | GUILayout.EndHorizontal();
75 | }
76 |
77 | public static void SetNewVersion (string newVersion)
78 | {
79 | if (!string.IsNullOrEmpty(newVersion))
80 | {
81 | GameAnalytics.SettingsGA.NewVersion = newVersion;
82 | }
83 | }
84 |
85 | public static string GetNewVersion ()
86 | {
87 | return GameAnalytics.SettingsGA.NewVersion;
88 | }
89 |
90 | public static void SetChanges (string changes)
91 | {
92 | if (!string.IsNullOrEmpty(changes))
93 | {
94 | GameAnalytics.SettingsGA.Changes = changes;
95 | }
96 | }
97 |
98 | public static string UpdateStatus (string currentVersion)
99 | {
100 | try {
101 | int newV = int.Parse(GameAnalytics.SettingsGA.NewVersion.Replace(".",""));
102 | int oldV = int.Parse(currentVersion.Replace(".",""));
103 |
104 | if (newV > oldV)
105 | return "New update";
106 | else
107 | return "";
108 | } catch {
109 | return "";
110 | }
111 | }
112 | }
113 | }
--------------------------------------------------------------------------------
/Editor/GA_UpdateWindow.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b025a92f1fe974e5faf57688a659013a
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/GameAnalyticsInspector.cs:
--------------------------------------------------------------------------------
1 | ///
2 | /// The inspector for the GA prefab.
3 | ///
4 |
5 | using UnityEngine;
6 | using UnityEditor;
7 | using System.Collections.Generic;
8 | using System.Reflection.Emit;
9 | using System.Reflection;
10 | using System;
11 | using GameAnalyticsSDK.Setup;
12 |
13 | namespace GameAnalyticsSDK.Editor
14 | {
15 | [CustomEditor(typeof(GameAnalytics))]
16 | public class GameAnalyticsInspector : UnityEditor.Editor
17 | {
18 | private GUIContent _documentationLink = new GUIContent("Help", "Opens the GameAnalytics Unity SDK documentation page in your browser.");
19 | //private GUIContent _guiAllowScreenshot = new GUIContent("Take Screenshot", "If enabled the player will be able to include a screenshot when submitting feedback and bug reports (This feature is not yet fully implemented).");
20 |
21 | override public void OnInspectorGUI ()
22 | {
23 | GameAnalytics ga = target as GameAnalytics;
24 |
25 | EditorGUI.indentLevel = 1;
26 | EditorGUILayout.Space();
27 |
28 | GUILayout.BeginHorizontal();
29 |
30 | GUILayout.Label("GameAnalytics Object",EditorStyles.largeLabel);
31 |
32 | if (GUILayout.Button(_documentationLink, GUILayout.MaxWidth(60)))
33 | {
34 | Application.OpenURL("http://support.gameanalytics.com/");
35 | }
36 |
37 | GUILayout.EndHorizontal();
38 |
39 | GUILayout.BeginHorizontal();
40 | GUILayout.Label("Basic component for initializing GameAnalytics.",EditorStyles.miniLabel);
41 | GUILayout.EndHorizontal();
42 |
43 | EditorGUILayout.Space();
44 |
45 | if (GUI.changed)
46 | {
47 | EditorUtility.SetDirty(ga);
48 | }
49 | }
50 |
51 | private MessageType ConvertMessageType(GameAnalyticsSDK.Setup.Settings.MessageTypes msgType)
52 | {
53 | switch (msgType)
54 | {
55 | case GameAnalyticsSDK.Setup.Settings.MessageTypes.Error:
56 | return MessageType.Error;
57 | case GameAnalyticsSDK.Setup.Settings.MessageTypes.Info:
58 | return MessageType.Info;
59 | case GameAnalyticsSDK.Setup.Settings.MessageTypes.Warning:
60 | return MessageType.Warning;
61 | default:
62 | return MessageType.None;
63 | }
64 | }
65 | }
66 | }
--------------------------------------------------------------------------------
/Editor/GameAnalyticsInspector.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ef714624881664191ade6c6dda4bef44
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/Playmaker.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 19408680da89f4453b644599992eed64
3 | folderAsset: yes
4 | DefaultImporter:
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Editor/Playmaker/PlayMakerPresenceCheck.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEditor;
3 | using System;
4 |
5 | public class PlayMakerPresenceCheck : AssetPostprocessor{
6 |
7 | static string PlayMakerTypeCheck = "HutongGames.PlayMaker.Actions.ActivateGameObject, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null";
8 | static string PlayMakerBridgeTypeCheck = "HutongGames.PlayMaker.Actions.SendDesignEvent, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null";
9 |
10 | static string IgnorePlayMakerBridgeKey = "IgnorePlayMakerBridge";
11 | static string PlayMakerBridgeEnabledKey = "PlayMakerBridgeEnabled";
12 |
13 | static bool _debug = false;
14 |
15 |
16 | public static void ResetPrefs()
17 | {
18 | EditorPrefs.DeleteKey(IgnorePlayMakerBridgeKey+"-"+Application.dataPath);
19 | EditorPrefs.DeleteKey(PlayMakerBridgeEnabledKey+"-"+Application.dataPath);
20 | }
21 |
22 | static void OnPostprocessAllAssets ( string[] importedAssets,string[] deletedAssets,string[] movedAssets,string[] movedFromAssetPaths)
23 | {
24 |
25 |
26 | //check here if we have access to a PlayMaker class, if we do, then we can alert the user.
27 | bool _playmakerDetected = System.Type.GetType(PlayMakerTypeCheck) != null;
28 |
29 | // check here if we have access to the PlayMaker Bridge Class.
30 | bool _bridgeEnabled = System.Type.GetType(PlayMakerBridgeTypeCheck) !=null;
31 |
32 | if (_debug)
33 | {
34 | Debug.Log("PlayMaker detected : "+_playmakerDetected+ " , Bridge enabled="+_bridgeEnabled);
35 | }
36 |
37 | if (_playmakerDetected)
38 | {
39 |
40 | if (! _bridgeEnabled)
41 | {
42 |
43 | if (EditorPrefs.GetBool(IgnorePlayMakerBridgeKey+"-"+Application.dataPath))
44 | {
45 | if (_debug)
46 | {
47 | Debug.Log("Ignore detection alert");
48 | }
49 | return;
50 | }
51 |
52 | if (EditorPrefs.GetBool(PlayMakerBridgeEnabledKey+"-"+Application.dataPath) )
53 | {
54 | if (_debug)
55 | {
56 | Debug.Log("PlayMaker found but bridge not enabled, tho we actually enabled it, so we bail");
57 | }
58 | return;
59 | }
60 |
61 | if (_debug)
62 | {
63 | Debug.Log("PlayMaker found but bridge not enabled");
64 | }
65 |
66 | if (EditorUtility.DisplayDialog("GameAnalytics : PlayMaker Detected","Do you want to enable PlayMaker Actions for GameAnalytics?","Yes","No"))
67 | {
68 | EditorPrefs.SetBool(PlayMakerBridgeEnabledKey+"-"+Application.dataPath,true);
69 |
70 | EditorApplication.ExecuteMenuItem("Window/GameAnalytics/PlayMaker/Toggle Scripts");
71 |
72 |
73 | }else{
74 | EditorPrefs.SetBool(IgnorePlayMakerBridgeKey+"-"+Application.dataPath,true);
75 | Debug.Log("To enable PlayMaker support for GameAnalytics manualy, simply go to the menu: 'Window/GameAnalytics/PlayMaker/Toggle Scripts'");
76 | }
77 | }
78 | }
79 |
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/Editor/Playmaker/PlayMakerPresenceCheck.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 59b631ff074a747748991261a24f2a0d
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/Playmaker/SendProgressionEventActionEditor.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using HutongGames.PlayMaker.Actions;
4 | using HutongGames.PlayMakerEditor;
5 | using UnityEditor;
6 | using UnityEngine;
7 | using GameAnalyticsSDK;
8 |
9 | namespace HutongGames.PlayMakerEditor
10 | {
11 | [CustomActionEditor(typeof (SendProgressionEvent))]
12 | public class SendProgressionEventActionEditor : CustomActionEditor
13 | {
14 |
15 | public override bool OnGUI()
16 | {
17 | bool edited = false;
18 | SendProgressionEvent _target = (SendProgressionEvent)target;
19 |
20 | if (_target.ProgressionStatusAsString == null)
21 | {
22 | _target.ProgressionStatusAsString = new HutongGames.PlayMaker.FsmString(){ UseVariable=false };
23 | }
24 |
25 | if (_target.ProgressionStatusAsString.UseVariable)
26 | {
27 | EditField("ProgressionStatusAsString");
28 |
29 | }
30 | else
31 | {
32 | GUILayout.BeginHorizontal();
33 | _target.ProgressionStatus = (GAProgressionStatus)EditorGUILayout.EnumPopup("Progression Status", _target.ProgressionStatus);
34 |
35 | if (PlayMakerEditor.FsmEditorGUILayout.MiniButtonPadded(PlayMakerEditor.FsmEditorContent.VariableButton))
36 | {
37 | _target.ProgressionStatusAsString.UseVariable = true;
38 | }
39 | GUILayout.EndHorizontal();
40 | }
41 |
42 | EditField("Progression01");
43 |
44 | if (_target.Progression01.Value != "" || !_target.Progression01.IsNone)
45 | EditField("Progression02");
46 |
47 | if (_target.Progression02.Value != "" || !_target.Progression02.IsNone)
48 | EditField("Progression03");
49 |
50 | EditField("Score");
51 |
52 | return GUI.changed || edited;
53 | }
54 |
55 | }
56 | }
57 |
58 | #endif
--------------------------------------------------------------------------------
/Editor/Playmaker/SendProgressionEventActionEditor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0d4cc2e81a2a44fcbba82d0af4fe74fc
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/Playmaker/SendResourceEventActionEditor.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using HutongGames.PlayMaker.Actions;
4 | using HutongGames.PlayMakerEditor;
5 | using UnityEditor;
6 | using UnityEngine;
7 | using GameAnalyticsSDK;
8 |
9 | namespace HutongGames.PlayMakerEditor
10 | {
11 | [CustomActionEditor(typeof (SendResourceEvent))]
12 | public class SendResourceEventActionEditor : CustomActionEditor
13 | {
14 |
15 | public override bool OnGUI()
16 | {
17 | bool edited = false;
18 | SendResourceEvent _target = (SendResourceEvent)target;
19 |
20 | if (_target.ResourceFlowTypeAsString == null)
21 | {
22 | _target.ResourceFlowTypeAsString = new HutongGames.PlayMaker.FsmString(){ UseVariable=false };
23 | }
24 |
25 | if (_target.ResourceFlowTypeAsString.UseVariable)
26 | {
27 | EditField("ResourceFlowTypeAsString");
28 |
29 | }
30 | else
31 | {
32 | GUILayout.BeginHorizontal();
33 | _target.ResourceFlowType = (GAResourceFlowType)EditorGUILayout.EnumPopup("Resource Flow Type", _target.ResourceFlowType);
34 |
35 | if (PlayMakerEditor.FsmEditorGUILayout.MiniButtonPadded(PlayMakerEditor.FsmEditorContent.VariableButton))
36 | {
37 | _target.ResourceFlowTypeAsString.UseVariable = true;
38 | }
39 | GUILayout.EndHorizontal();
40 | }
41 |
42 | EditField("ResourceCurrency");
43 | EditField("Amount");
44 | EditField("ItemType");
45 | EditField("ItemID");
46 |
47 | return GUI.changed || edited;
48 | }
49 |
50 | }
51 | }
52 |
53 | #endif
--------------------------------------------------------------------------------
/Editor/Playmaker/SendResourceEventActionEditor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f50974faf2211494d9c937a90c66fc94
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Editor/com.gameanalytics.sdk.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "GameAnalyticsSDK.Editor",
3 | "rootNamespace": "GameAnalyticsSDK.Editor",
4 | "references": [
5 | "GameAnalyticsSDK"
6 | ],
7 | "includePlatforms": [
8 | "Editor"
9 | ],
10 | "excludePlatforms": [],
11 | "allowUnsafeCode": false,
12 | "overrideReferences": false,
13 | "precompiledReferences": [],
14 | "autoReferenced": true,
15 | "defineConstraints": [],
16 | "versionDefines": [],
17 | "noEngineReferences": false
18 | }
--------------------------------------------------------------------------------
/Editor/com.gameanalytics.sdk.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 764a0e1d3535a456e9a4bf0c23f88bf7
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Gizmos.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e84d84c62e3464c2dbbaca66d1679469
3 | DefaultImporter:
4 | userData:
5 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0815a0dd77f0048c28eb65386cbbaa8f
3 | folderAsset: yes
4 | DefaultImporter:
5 | userData:
6 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 33f691f424cec47a3a0f33815f922bd2
3 | folderAsset: yes
4 | DefaultImporter:
5 | userData:
6 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/active.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/active.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2a410468f562749b09418cdaaa03e6c3
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 256
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/default.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/default.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0a098930e63804755878cae3eada3bd7
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 256
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/delete.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/delete.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 85a626f1668244d30a4e9f616991a793
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 32
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/game.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/game.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/game.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a9ac7103fc40b4e00923bf8c2cb5d30f
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 64
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/home.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/home.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fe7e2ecc9b2fe447bafe90f6395d4709
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 32
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/info.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/info.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1b4dd779aadd54ac88856975af0d3c0a
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 32
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/instrument.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/instrument.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/instrument.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2ba470b4dffd848c6b267c34770cc63e
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 64
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/question.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/question.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/question.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f8ea67e311b0c4b2ea05718e90fd3b5b
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 32
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/update_orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/update_orange.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/update_orange.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 810bbb19deed24f3cb7b854f9bafde26
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 32
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/Images/user.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/Images/user.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f49ef75333ff247cfb5dad4dab0d4dac
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 64
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/gaLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Gizmos/GameAnalytics/gaLogo.png
--------------------------------------------------------------------------------
/Gizmos/GameAnalytics/gaLogo.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 98df8f9c5678a4e5d964caa1244e8958
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | serializedVersion: 2
6 | mipmaps:
7 | mipMapMode: 0
8 | enableMipMap: 0
9 | linearTexture: 1
10 | correctGamma: 0
11 | fadeOut: 0
12 | borderMipMap: 0
13 | mipMapFadeDistanceStart: 1
14 | mipMapFadeDistanceEnd: 3
15 | bumpmap:
16 | convertToNormalMap: 0
17 | externalNormalMap: 0
18 | heightScale: .25
19 | normalMapFilter: 0
20 | isReadable: 0
21 | grayScaleToAlpha: 0
22 | generateCubemap: 0
23 | seamlessCubemap: 0
24 | textureFormat: -1
25 | maxTextureSize: 64
26 | textureSettings:
27 | filterMode: 1
28 | aniso: 1
29 | mipBias: -1
30 | wrapMode: 1
31 | nPOTScale: 0
32 | lightmap: 0
33 | compressionQuality: 50
34 | spriteMode: 0
35 | spriteExtrude: 1
36 | spriteMeshType: 1
37 | alignment: 0
38 | spritePivot: {x: .5, y: .5}
39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
40 | spritePixelsToUnits: 100
41 | alphaIsTransparency: 1
42 | textureType: 2
43 | buildTargetSettings: []
44 | spriteSheet:
45 | sprites: []
46 | spritePackingTag:
47 | userData:
48 |
--------------------------------------------------------------------------------
/GooglePackages.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1e9ec6fcdfc904f27bd57071f0058c88
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/GooglePackages/com.google.external-dependency-manager-1.2.168.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/GooglePackages/com.google.external-dependency-manager-1.2.168.tgz
--------------------------------------------------------------------------------
/GooglePackages/com.google.external-dependency-manager-1.2.168.tgz.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fd5816229e4fa47e889bd1491aec2faa
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Game Analytics
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/LICENSE.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b58062544dc6a4684b7986120a826d5f
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://openupm.com/packages/com.gameanalytics.sdk/)
2 |
3 |
4 | # GA-SDK-UNITY
5 | GameAnalytics Unity SDK.
6 |
7 | Documentation can be found [here](https://gameanalytics.com/docs/unity-sdk).
8 |
9 | If you have any issues or feedback regarding the SDK, please contact our friendly support team [here](https://gameanalytics.com/contact).
10 |
11 | This is a custom package used with [Unity Package Manager](https://docs.unity3d.com/Manual/Packages.html) if you want the usual .unitypackage you can download it [here](https://download.gameanalytics.com/unity/GA_SDK_UNITY.unitypackage).
12 |
13 | OBS: If you want to use ILRD with the SDK and you are getting the SDK via UPM you need to download this .unitypackage [here](https://download.gameanalytics.com/unity/GA_ILRD_UNITY.unitypackage). This has to do with some dependency issues with the Ad SDKs which are not on UPM yet.
14 |
15 | > :information_source:
16 | > The Unity SDK include support for **Windows**, **Mac**, **Linux**, **WebGL**, **iOS**, **tvOS**, **Tizen**, **UWP**, **Universal Windows 8** and **Android**.
17 | >
18 | > **Build size:**
19 | > Note that download size differ from the actual build size.
20 | >
21 | > **Android:**
22 | > The SDK build size in a native Android app is only around **49Kb** and the dependencies take up to **820Kb** depending if your app already uses some of the same dependencies.
23 | >
24 | > **iOS:**
25 | > The SDK build size in a native iOS app is only around **242Kb** (armv7) / **259Kb** (armv8).
26 |
27 |
28 | [Changelog](CHANGELOG.md)
29 |
--------------------------------------------------------------------------------
/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9da2a76077c244e25a15f11762e04ed4
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Runtime.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 627a3504e68c045ff976bb539593c552
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Runtime/Android.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 597ee60d9a475c840bd1048278120a0c
3 | folderAsset: yes
4 | timeCreated: 1537519465
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Runtime/Android/gameanalytics.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Runtime/Android/gameanalytics.aar
--------------------------------------------------------------------------------
/Runtime/Android/gameanalytics.aar.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 316a5978eed5b400c8dd756e6eb47fdc
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 1
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | : Any
16 | second:
17 | enabled: 0
18 | settings:
19 | Exclude Android: 0
20 | Exclude Editor: 1
21 | Exclude Linux64: 1
22 | Exclude OSXUniversal: 1
23 | Exclude WebGL: 1
24 | Exclude Win: 1
25 | Exclude Win64: 1
26 | Exclude iOS: 1
27 | - first:
28 | Android: Android
29 | second:
30 | enabled: 1
31 | settings:
32 | CPU: ARMv7
33 | - first:
34 | Any:
35 | second:
36 | enabled: 0
37 | settings: {}
38 | - first:
39 | Editor: Editor
40 | second:
41 | enabled: 0
42 | settings:
43 | CPU: AnyCPU
44 | DefaultValueInitialized: true
45 | OS: AnyOS
46 | - first:
47 | Standalone: Linux64
48 | second:
49 | enabled: 0
50 | settings:
51 | CPU: AnyCPU
52 | - first:
53 | Standalone: OSXUniversal
54 | second:
55 | enabled: 0
56 | settings:
57 | CPU: AnyCPU
58 | - first:
59 | Standalone: Win
60 | second:
61 | enabled: 0
62 | settings:
63 | CPU: AnyCPU
64 | - first:
65 | Standalone: Win64
66 | second:
67 | enabled: 0
68 | settings:
69 | CPU: AnyCPU
70 | - first:
71 | iPhone: iOS
72 | second:
73 | enabled: 0
74 | settings:
75 | AddToEmbeddedBinaries: false
76 | CPU: AnyCPU
77 | CompileFlags:
78 | FrameworkDependencies:
79 | userData:
80 | assetBundleName:
81 | assetBundleVariant:
82 |
--------------------------------------------------------------------------------
/Runtime/Android/unity_gameanalytics.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Runtime/Android/unity_gameanalytics.jar
--------------------------------------------------------------------------------
/Runtime/Android/unity_gameanalytics.jar.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 63c7fbb74d1694323b632b9b4cd7d1d1
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 1
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | : Any
16 | second:
17 | enabled: 0
18 | settings:
19 | Exclude Android: 0
20 | Exclude Editor: 1
21 | Exclude Linux64: 1
22 | Exclude OSXUniversal: 1
23 | Exclude WebGL: 1
24 | Exclude Win: 1
25 | Exclude Win64: 1
26 | Exclude iOS: 1
27 | - first:
28 | Android: Android
29 | second:
30 | enabled: 1
31 | settings:
32 | CPU: ARMv7
33 | - first:
34 | Any:
35 | second:
36 | enabled: 0
37 | settings: {}
38 | - first:
39 | Editor: Editor
40 | second:
41 | enabled: 0
42 | settings:
43 | CPU: AnyCPU
44 | DefaultValueInitialized: true
45 | OS: AnyOS
46 | - first:
47 | Standalone: Linux64
48 | second:
49 | enabled: 0
50 | settings:
51 | CPU: AnyCPU
52 | - first:
53 | Standalone: OSXUniversal
54 | second:
55 | enabled: 0
56 | settings:
57 | CPU: AnyCPU
58 | - first:
59 | Standalone: Win
60 | second:
61 | enabled: 0
62 | settings:
63 | CPU: AnyCPU
64 | - first:
65 | Standalone: Win64
66 | second:
67 | enabled: 0
68 | settings:
69 | CPU: AnyCPU
70 | - first:
71 | iPhone: iOS
72 | second:
73 | enabled: 0
74 | settings:
75 | AddToEmbeddedBinaries: false
76 | CPU: AnyCPU
77 | CompileFlags:
78 | FrameworkDependencies:
79 | userData:
80 | assetBundleName:
81 | assetBundleVariant:
82 |
--------------------------------------------------------------------------------
/Runtime/GameAnalytics.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Runtime/GameAnalytics.dll
--------------------------------------------------------------------------------
/Runtime/GameAnalytics.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e185dadd9acc8487d8d4bb2936a243cc
3 | timeCreated: 1572358580
4 | licenseType: Pro
5 | PluginImporter:
6 | serializedVersion: 1
7 | iconMap: {}
8 | executionOrder: {}
9 | isPreloaded: 0
10 | platformData:
11 | Any:
12 | enabled: 0
13 | settings: {}
14 | Editor:
15 | enabled: 0
16 | settings:
17 | DefaultValueInitialized: true
18 | Linux:
19 | enabled: 1
20 | settings: {}
21 | Linux64:
22 | enabled: 1
23 | settings: {}
24 | LinuxUniversal:
25 | enabled: 1
26 | settings: {}
27 | OSXIntel:
28 | enabled: 1
29 | settings: {}
30 | OSXIntel64:
31 | enabled: 1
32 | settings: {}
33 | OSXUniversal:
34 | enabled: 1
35 | settings: {}
36 | Win:
37 | enabled: 1
38 | settings: {}
39 | Win64:
40 | enabled: 1
41 | settings: {}
42 | WindowsStoreApps:
43 | enabled: 0
44 | settings:
45 | CPU: AnyCPU
46 | userData:
47 | assetBundleName:
48 | assetBundleVariant:
49 |
--------------------------------------------------------------------------------
/Runtime/Linux.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f10ba24b63b2c46459091962994de8c1
3 | folderAsset: yes
4 | timeCreated: 1460635935
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Runtime/Linux/sqlite3.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Runtime/Linux/sqlite3.so
--------------------------------------------------------------------------------
/Runtime/Linux/sqlite3.so.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0683b20eb25df464b8f46d93396af7f6
3 | timeCreated: 1565687811
4 | licenseType: Pro
5 | PluginImporter:
6 | serializedVersion: 1
7 | iconMap: {}
8 | executionOrder: {}
9 | isPreloaded: 0
10 | platformData:
11 | Any:
12 | enabled: 0
13 | settings: {}
14 | Editor:
15 | enabled: 0
16 | settings:
17 | DefaultValueInitialized: true
18 | Linux:
19 | enabled: 1
20 | settings: {}
21 | Linux64:
22 | enabled: 1
23 | settings: {}
24 | LinuxUniversal:
25 | enabled: 1
26 | settings: {}
27 | userData:
28 | assetBundleName:
29 | assetBundleVariant:
30 |
--------------------------------------------------------------------------------
/Runtime/Playmaker.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6fec94307c4a3455aa36a1c8ce4624f2
3 | folderAsset: yes
4 | DefaultImporter:
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/Examples.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 37976cfe0530549b39d0f7e0271a4255
3 | folderAsset: yes
4 | DefaultImporter:
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/Examples/GameAnalyticsPlayMakerDemo.unitypackage:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Runtime/Playmaker/Examples/GameAnalyticsPlayMakerDemo.unitypackage
--------------------------------------------------------------------------------
/Runtime/Playmaker/Examples/GameAnalyticsPlayMakerDemo.unitypackage.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 407ffca6c655a443ba2a0b82d2a43bdc
3 | DefaultImporter:
4 | userData:
5 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/GAInitialize.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using UnityEngine;
5 | using GameAnalyticsSDK;
6 | using GameAnalyticsSDK.Events;
7 |
8 | namespace HutongGames.PlayMaker.Actions
9 | {
10 | [ActionCategory("GameAnalytics")]
11 | [Tooltip("Initialize GameAnalytics SDK")]
12 | public class GAInitialize : FsmStateAction
13 | {
14 | public override void Reset()
15 | {
16 | }
17 |
18 | public override void OnEnter()
19 | {
20 | GameAnalytics.Initialize();
21 |
22 | Finish();
23 | }
24 | }
25 | }
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/GAInitialize.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9370f17c653e94c29948b6883597f4f3
3 | timeCreated: 1537177094
4 | licenseType: Pro
5 | MonoImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | defaultReferences: []
9 | executionOrder: 0
10 | icon: {instanceID: 0}
11 | userData:
12 | assetBundleName:
13 | assetBundleVariant:
14 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/GetABTestingId.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using UnityEngine;
5 | using GameAnalyticsSDK;
6 | using GameAnalyticsSDK.Events;
7 |
8 | namespace HutongGames.PlayMaker.Actions
9 | {
10 | [ActionCategory("GameAnalytics")]
11 | [Tooltip("Get AB testing id")]
12 | public class GetABTestingId : FsmStateAction
13 | {
14 | [ActionSection("Store Result")]
15 |
16 | [UIHint(UIHint.Variable)]
17 | [RequiredField]
18 | [Tooltip("Store the result of the method call.")]
19 | public FsmString storeResult;
20 |
21 | public override void Reset()
22 | {
23 | }
24 |
25 | public override void OnEnter()
26 | {
27 | storeResult.Value = GameAnalytics.GetABTestingId();
28 |
29 | Finish();
30 | }
31 | }
32 | }
33 |
34 | #endif
35 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/GetABTestingId.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 454d889a3c60a494aa071812450cf1e2
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/GetABTestingVariantId.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using UnityEngine;
5 | using GameAnalyticsSDK;
6 | using GameAnalyticsSDK.Events;
7 |
8 | namespace HutongGames.PlayMaker.Actions
9 | {
10 | [ActionCategory("GameAnalytics")]
11 | [Tooltip("Get AB testing variant id")]
12 | public class GetABTestingVariantId : FsmStateAction
13 | {
14 | [ActionSection("Store Result")]
15 |
16 | [UIHint(UIHint.Variable)]
17 | [RequiredField]
18 | [Tooltip("Store the result of the method call.")]
19 | public FsmString storeResult;
20 |
21 | public override void Reset()
22 | {
23 | }
24 |
25 | public override void OnEnter()
26 | {
27 | storeResult.Value = GameAnalytics.GetABTestingVariantId();
28 |
29 | Finish();
30 | }
31 | }
32 | }
33 |
34 | #endif
35 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/GetABTestingVariantId.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 839df1d9532264d9c9365e5fe1469267
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/GetRemoteConfigsValueAsString.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using UnityEngine;
5 | using GameAnalyticsSDK;
6 | using GameAnalyticsSDK.Events;
7 |
8 | namespace HutongGames.PlayMaker.Actions
9 | {
10 | [ActionCategory("GameAnalytics")]
11 | [Tooltip("Get remote config value as string")]
12 | public class GetRemoteConfigsValueAsString : FsmStateAction
13 | {
14 | [Tooltip("The remote config key")]
15 | [RequiredField]
16 | public FsmString Key;
17 |
18 | [Tooltip("The remote config default value if the key is present in remote configs")]
19 | public FsmString DefaultValue;
20 |
21 | [ActionSection("Store Result")]
22 |
23 | [UIHint(UIHint.Variable)]
24 | [RequiredField]
25 | [Tooltip("Store the result of the method call.")]
26 | public FsmString storeResult;
27 |
28 | public override void Reset()
29 | {
30 | }
31 |
32 | public override void OnEnter()
33 | {
34 | if(DefaultValue.IsNone)
35 | {
36 | storeResult.Value = GameAnalytics.GetRemoteConfigsValueAsString(Key.Value);
37 | }
38 | else
39 | {
40 | storeResult.Value = GameAnalytics.GetRemoteConfigsValueAsString(Key.Value, DefaultValue.Value);
41 | }
42 |
43 | Finish();
44 | }
45 | }
46 | }
47 |
48 | #endif
49 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/GetRemoteConfigsValueAsString.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 385dfd45fbeae4407b26dab4174751a1
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/IsRemoteConfigsReady.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using UnityEngine;
5 | using GameAnalyticsSDK;
6 | using GameAnalyticsSDK.Events;
7 |
8 | namespace HutongGames.PlayMaker.Actions
9 | {
10 | [ActionCategory("GameAnalytics")]
11 | [Tooltip("Is remote configs ready")]
12 | public class IsRemoteConfigsReady : FsmStateAction
13 | {
14 | [ActionSection("Store Result")]
15 |
16 | [UIHint(UIHint.Variable)]
17 | [RequiredField]
18 | [Tooltip("Store the result of the method call.")]
19 | public FsmBool storeResult;
20 |
21 | public override void Reset()
22 | {
23 | }
24 |
25 | public override void OnEnter()
26 | {
27 | storeResult.Value = GameAnalytics.IsRemoteConfigsReady();
28 |
29 | Finish();
30 | }
31 | }
32 | }
33 |
34 | #endif
35 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/IsRemoteConfigsReady.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b4b02fb883d7e45cc9d445c8eca67419
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendAdEvent.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using GameAnalyticsSDK;
5 | using GameAnalyticsSDK.Events;
6 |
7 | namespace HutongGames.PlayMaker.Actions
8 | {
9 | [ActionCategory("GameAnalytics")]
10 | [Tooltip("Sends an ad event message to the GameAnalytics server")]
11 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1164")]
12 | public class SendAdEvent : FsmStateAction
13 | {
14 | [Tooltip("The ad action")]
15 | public GAAdAction AdAction;
16 |
17 | [Tooltip("The ad type")]
18 | public GAAdType AdType;
19 |
20 | [RequiredField]
21 | [Tooltip("Ad SDK name")]
22 | public FsmString AdSdkName;
23 |
24 | [RequiredField]
25 | [Tooltip("Ad placement")]
26 | public FsmString AdPlacement;
27 |
28 | [RequiredField]
29 | [Tooltip("Ad error reason")]
30 | public GAAdError AdErrorReason;
31 |
32 | [Tooltip("Ad video duration watched")]
33 | public FsmInt Duration;
34 |
35 | public override void Reset()
36 | {
37 | AdAction = GAAdAction.Show;
38 | AdType = GAAdType.Interstitial;
39 | AdSdkName = new FsmString() { UseVariable = false };
40 | AdPlacement = new FsmString() { UseVariable = false };
41 | AdErrorReason = GAAdError.Undefined;
42 | Duration = new FsmInt() { UseVariable = false };
43 | }
44 |
45 | public override void OnEnter()
46 | {
47 | if(!Duration.IsNone)
48 | {
49 | GA_Ads.NewEvent(AdAction, AdType, AdSdkName.Value, AdPlacement.Value, Duration.Value, null, false);
50 | }
51 | else if (AdErrorReason != GAAdError.Undefined)
52 | {
53 | GA_Ads.NewEvent(AdAction, AdType, AdSdkName.Value, AdPlacement.Value, AdErrorReason, null, false);
54 | }
55 | else
56 | {
57 | GA_Ads.NewEvent(AdAction, AdType, AdSdkName.Value, AdPlacement.Value, null, false);
58 | }
59 |
60 | Finish();
61 | }
62 | }
63 | }
64 |
65 | #endif
66 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendAdEvent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 08aa36c620a9340648d45b3707830e81
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendBusinessEvent.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using GameAnalyticsSDK;
5 |
6 | namespace HutongGames.PlayMaker.Actions
7 | {
8 | [ActionCategory("GameAnalytics")]
9 | [Tooltip("Sends a business event message to the GameAnalytics server with no validation")]
10 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1163")]
11 | public class SendBusinessEvent : FsmStateAction
12 | {
13 | [RequiredField]
14 | [Tooltip("Abbreviation of the currency used for the transaction. F.x. USD (U.S. Dollars)")]
15 | public FsmString Currency;
16 |
17 | [RequiredField]
18 | [Tooltip("Amount of real currency, in cents")]
19 | public FsmInt Amount;
20 |
21 | [RequiredField]
22 | [Tooltip("Type of IAP item purchased (e.g. Coins)")]
23 | public FsmString ItemType;
24 |
25 | [RequiredField]
26 | [Tooltip("Specific item purchased (e.g. CoinPack001)")]
27 | public FsmString ItemID;
28 |
29 | [RequiredField]
30 | [Tooltip("Cart Type")]
31 | public FsmString CartType;
32 |
33 | public override void Reset()
34 | {
35 | Currency = new FsmString() { UseVariable = false };
36 | Amount = new FsmInt() { UseVariable = false };
37 | ItemType = new FsmString() { UseVariable = false };
38 | ItemID = new FsmString() { UseVariable = false };
39 | CartType = new FsmString() { UseVariable = false };
40 | }
41 |
42 | public override void OnEnter()
43 | {
44 | GameAnalytics.NewBusinessEvent(Currency.Value, Amount.Value, ItemType.Value, ItemID.Value, CartType.Value);
45 |
46 | Finish();
47 | }
48 | }
49 |
50 | #if UNITY_IOS || UNITY_TVOS
51 | [ActionCategory("GameAnalytics")]
52 | [Tooltip("Sends an iOS business event message to the GameAnalytics server")]
53 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1163")]
54 | public class SendBusinessEventIOS : FsmStateAction
55 | {
56 | [RequiredField]
57 | [Tooltip("Abbreviation of the currency used for the transaction. F.x. USD (U.S. Dollars)")]
58 | public FsmString Currency;
59 |
60 | [RequiredField]
61 | [Tooltip("Amount of real currency, in cents")]
62 | public FsmInt Amount;
63 |
64 | [RequiredField]
65 | [Tooltip("Type of IAP item purchased (e.g. Coins)")]
66 | public FsmString ItemType;
67 |
68 | [RequiredField]
69 | [Tooltip("Specific item purchased (e.g. CoinPack001)")]
70 | public FsmString ItemID;
71 |
72 | [RequiredField]
73 | [Tooltip("Cart Type")]
74 | public FsmString CartType;
75 |
76 | [Tooltip("App Store Receipt, used for purchase validation")]
77 | public FsmString Receipt;
78 |
79 | public override void Reset()
80 | {
81 | Currency = new FsmString() { UseVariable = false };
82 | Amount = new FsmInt() { UseVariable = false };
83 | ItemType = new FsmString() { UseVariable = false };
84 | ItemID = new FsmString() { UseVariable = false };
85 | CartType = new FsmString() { UseVariable = false };
86 | Receipt = new FsmString() { UseVariable = false };
87 | }
88 |
89 | public override void OnEnter()
90 | {
91 | GameAnalytics.NewBusinessEventIOS(Currency.Value, Amount.Value, ItemType.Value, ItemID.Value, CartType.Value, Receipt.Value);
92 |
93 | Finish();
94 | }
95 | }
96 |
97 | [ActionCategory("GameAnalytics")]
98 | [Tooltip("Sends an iOS business with auto fetch receipt event message to the GameAnalytics server")]
99 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1163")]
100 | public class SendBusinessEventIOSAutoFetchReceipt : FsmStateAction
101 | {
102 | [RequiredField]
103 | [Tooltip("Abbreviation of the currency used for the transaction. F.x. USD (U.S. Dollars)")]
104 | public FsmString Currency;
105 |
106 | [RequiredField]
107 | [Tooltip("Amount of real currency, in cents")]
108 | public FsmInt Amount;
109 |
110 | [RequiredField]
111 | [Tooltip("Type of IAP item purchased (e.g. Coins)")]
112 | public FsmString ItemType;
113 |
114 | [RequiredField]
115 | [Tooltip("Specific item purchased (e.g. CoinPack001)")]
116 | public FsmString ItemID;
117 |
118 | [RequiredField]
119 | [Tooltip("Cart Type")]
120 | public FsmString CartType;
121 |
122 | public override void Reset()
123 | {
124 | Currency = new FsmString() { UseVariable = false };
125 | Amount = new FsmInt() { UseVariable = false };
126 | ItemType = new FsmString() { UseVariable = false };
127 | ItemID = new FsmString() { UseVariable = false };
128 | CartType = new FsmString() { UseVariable = false };
129 | }
130 |
131 | public override void OnEnter()
132 | {
133 | GameAnalytics.NewBusinessEventIOSAutoFetchReceipt(Currency.Value, Amount.Value, ItemType.Value, ItemID.Value, CartType.Value);
134 |
135 | Finish();
136 | }
137 | }
138 | #endif
139 |
140 | #if UNITY_ANDROID
141 | [ActionCategory("GameAnalytics")]
142 | [Tooltip("Sends a Google Play business event message to the GameAnalytics server")]
143 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1163")]
144 | public class SendBusinessEventGooglePlay : FsmStateAction
145 | {
146 | [RequiredField]
147 | [Tooltip("Abbreviation of the currency used for the transaction. F.x. USD (U.S. Dollars)")]
148 | public FsmString Currency;
149 |
150 | [RequiredField]
151 | [Tooltip("Amount of real currency, in cents")]
152 | public FsmInt Amount;
153 |
154 | [RequiredField]
155 | [Tooltip("Type of IAP item purchased (e.g. Coins)")]
156 | public FsmString ItemType;
157 |
158 | [RequiredField]
159 | [Tooltip("Specific item purchased (e.g. CoinPack001)")]
160 | public FsmString ItemID;
161 |
162 | [RequiredField]
163 | [Tooltip("Cart Type")]
164 | public FsmString CartType;
165 |
166 | [Tooltip("App Store Receipt, used for purchase validation")]
167 | public FsmString Receipt;
168 |
169 | [RequiredField]
170 | [Tooltip("Signature for In-App purchase, used for purchase validation")]
171 | public FsmString Signature;
172 |
173 | public override void Reset()
174 | {
175 | Currency = new FsmString() { UseVariable = false };
176 | Amount = new FsmInt() { UseVariable = false };
177 | ItemType = new FsmString() { UseVariable = false };
178 | ItemID = new FsmString() { UseVariable = false };
179 | CartType = new FsmString() { UseVariable = false };
180 | Receipt = new FsmString() { UseVariable = false };
181 | Signature = new FsmString() { UseVariable = false };
182 | }
183 |
184 | public override void OnEnter()
185 | {
186 | GameAnalytics.NewBusinessEventGooglePlay(Currency.Value, Amount.Value, ItemType.Value, ItemID.Value, CartType.Value, Receipt.Value, Signature.Value);
187 |
188 | Finish();
189 | }
190 | }
191 | #endif
192 | }
193 |
194 | #endif
195 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendBusinessEvent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1c4b16e44b6ce4aa3829724d9730e8b6
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendDesignEvent.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using GameAnalyticsSDK;
5 | using GameAnalyticsSDK.Events;
6 |
7 | namespace HutongGames.PlayMaker.Actions
8 | {
9 | [ActionCategory("GameAnalytics")]
10 | [Tooltip("Sends a design event message to the GameAnalytics server")]
11 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1164")]
12 | public class SendDesignEvent : FsmStateAction
13 | {
14 | [RequiredField]
15 | [Tooltip("The event ID")]
16 | public FsmString EventID;
17 |
18 | [Tooltip("The event value")]
19 | public FsmFloat EventValue;
20 |
21 | public override void Reset()
22 | {
23 | EventID = new FsmString() { UseVariable = false };
24 | EventValue = new FsmFloat() { UseVariable = true };
25 | }
26 |
27 | public override void OnEnter()
28 | {
29 | if (!EventValue.IsNone)
30 | GA_Design.NewEvent(EventID.Value, EventValue.Value, null, false);
31 | else
32 | GA_Design.NewEvent(EventID.Value, null, false);
33 |
34 | Finish();
35 | }
36 | }
37 | }
38 |
39 | #endif
40 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendDesignEvent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 69088c40a9088448b931f5688693ff5d
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendErrorEvent.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using GameAnalyticsSDK;
5 | using GameAnalyticsSDK.Events;
6 |
7 | namespace HutongGames.PlayMaker.Actions
8 | {
9 | [ActionCategory("GameAnalytics")]
10 | [Tooltip("Sends a error event message to the GameAnalytics server.")]
11 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1171")]
12 | public class SendErrorEvent : FsmStateAction
13 | {
14 |
15 | [Tooltip("The severity of this event: critical, error, warning, info, debug")]
16 | public GAErrorSeverity severityType ;
17 |
18 | [Tooltip("The message")]
19 | [RequiredField]
20 | public FsmString Message;
21 |
22 | public override void Reset()
23 | {
24 | severityType = GAErrorSeverity.Error;
25 | Message = new FsmString() { UseVariable = false };
26 | }
27 |
28 | public override void OnEnter()
29 | {
30 | GA_Error.NewEvent(severityType, Message.Value, null, false);
31 |
32 | Finish();
33 | }
34 | }
35 | }
36 |
37 | #endif
38 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendErrorEvent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 78ad7cbebadcf462498c3fb5f7e7f1d3
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendProgressionEvent.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using GameAnalyticsSDK;
5 | using GameAnalyticsSDK.Events;
6 |
7 | namespace HutongGames.PlayMaker.Actions
8 | {
9 | [ActionCategory("GameAnalytics")]
10 | [Tooltip("Sends a progression event message to the GameAnalytics server")]
11 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1164")]
12 | public class SendProgressionEvent : FsmStateAction
13 | {
14 | [Tooltip("The progression status as string: 'start', 'complete', 'fail' case insensitive, any other values are invalid")]
15 | public FsmString ProgressionStatusAsString;
16 |
17 | [Tooltip("The progression status")]
18 | public GAProgressionStatus ProgressionStatus;
19 |
20 | [RequiredField]
21 | [Tooltip("Progression layer 1")]
22 | public FsmString Progression01;
23 |
24 | [Tooltip("Progression layer 2")]
25 | public FsmString Progression02;
26 |
27 | [Tooltip("Progression layer 3")]
28 | public FsmString Progression03;
29 |
30 | [Tooltip("The player's score")]
31 | public FsmInt Score;
32 |
33 | public override void Reset()
34 | {
35 | ProgressionStatus = GAProgressionStatus.Start;
36 | Progression01 = new FsmString() { UseVariable = false };
37 | Progression02 = new FsmString() { UseVariable = false };
38 | Progression03 = new FsmString() { UseVariable = false };
39 | Score = new FsmInt() { UseVariable = false };
40 | }
41 |
42 | public override void OnEnter()
43 | {
44 | if (!Score.IsNone)
45 | {
46 | if (!Progression03.IsNone && !Progression02.IsNone)
47 | GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Progression02.Value, Progression03.Value, Score.Value, null, false);
48 | else if (!Progression02.IsNone)
49 | GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Progression02.Value, Score.Value, null, false);
50 | else
51 | GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Score.Value, null, false);
52 | }
53 | else
54 | {
55 | if (!Progression03.IsNone && !Progression02.IsNone)
56 | GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Progression02.Value, Progression03.Value, null, false);
57 | else if (!Progression02.IsNone)
58 | GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Progression02.Value, null, false);
59 | else
60 | GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, null, false);
61 | }
62 |
63 | Finish();
64 | }
65 | }
66 | }
67 |
68 | #endif
69 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendProgressionEvent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b86bf966f50b94d51b995b04fd531177
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendResourceEvent.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using GameAnalyticsSDK;
5 | using GameAnalyticsSDK.Events;
6 |
7 | namespace HutongGames.PlayMaker.Actions
8 | {
9 | [ActionCategory("GameAnalytics")]
10 | [Tooltip("Sends a resource event message to the GameAnalytics server")]
11 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1164")]
12 | public class SendResourceEvent : FsmStateAction
13 | {
14 | [Tooltip("The resource flow type as string: 'source', 'sink' case insensitive, any other values are invalid")]
15 | public FsmString ResourceFlowTypeAsString;
16 |
17 | [Tooltip("The resource flow type: add (source) or remove (sink) resource")]
18 | public GAResourceFlowType ResourceFlowType;
19 |
20 | [RequiredField]
21 | [Tooltip("Type of virtual currency used (E.g. gold, lives)")]
22 | public FsmString ResourceCurrency;
23 |
24 | [RequiredField]
25 | [Tooltip("Amount of virtual currency used/gained in this event")]
26 | public FsmFloat Amount;
27 |
28 | [RequiredField]
29 | [Tooltip("Type of item purchased/used with virtual currency (E.g. boost, gameplay)")]
30 | public FsmString ItemType;
31 |
32 | [RequiredField]
33 | [Tooltip("Specific item purchased/used with virtual currency (E.g. rainbowboost, gamestart)")]
34 | public FsmString ItemID;
35 |
36 | public override void Reset()
37 | {
38 | ResourceFlowType = GAResourceFlowType.Source;
39 | ResourceCurrency = new FsmString() { UseVariable = false };
40 | Amount = new FsmFloat() { UseVariable = false };
41 | ItemType = new FsmString() { UseVariable = false };
42 | ItemID = new FsmString() { UseVariable = false };
43 | }
44 |
45 | public override void OnEnter()
46 | {
47 | GA_Resource.NewEvent(ResourceFlowType, ResourceCurrency.Value, Amount.Value, ItemType.Value, ItemID.Value, null, false);
48 |
49 | Finish();
50 | }
51 | }
52 | }
53 |
54 | #endif
55 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SendResourceEvent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b0f8e458451f540a1b0dd6c6381858ec
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Playmaker/SetCustomDimension.cs:
--------------------------------------------------------------------------------
1 | #if false
2 |
3 | using System;
4 | using UnityEngine;
5 | using GameAnalyticsSDK;
6 | using GameAnalyticsSDK.Events;
7 |
8 | namespace HutongGames.PlayMaker.Actions
9 | {
10 | public enum CustomDimensionNumber
11 | {
12 | CustomDimension01 = 1,
13 | CustomDimension02 = 2,
14 | CustomDimension03 = 3
15 | }
16 |
17 | [ActionCategory("GameAnalytics")]
18 | [Tooltip("Sets a Custom Dimension")]
19 | [HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1166")]
20 | public class SetCustomDimension : FsmStateAction
21 | {
22 | [RequiredField]
23 | [Tooltip("The Custom Dimension to set (1/2/3).")]
24 | public CustomDimensionNumber CustomDimension;
25 |
26 | [RequiredField]
27 | [Tooltip("The Custom Dimension value.")]
28 | public FsmString CustomDimensionValue;
29 |
30 | public override void Reset()
31 | {
32 | CustomDimension = CustomDimensionNumber.CustomDimension01;
33 | CustomDimensionValue = new FsmString() { UseVariable = false };
34 | }
35 |
36 | public override void OnEnter()
37 | {
38 | switch (CustomDimension)
39 | {
40 | case CustomDimensionNumber.CustomDimension01:
41 | GA_Setup.SetCustomDimension01(CustomDimensionValue.Value);
42 | break;
43 | case CustomDimensionNumber.CustomDimension02:
44 | GA_Setup.SetCustomDimension02(CustomDimensionValue.Value);
45 | break;
46 | case CustomDimensionNumber.CustomDimension03:
47 | GA_Setup.SetCustomDimension03(CustomDimensionValue.Value);
48 | break;
49 | }
50 |
51 | Finish();
52 | }
53 | }
54 | }
55 |
56 | #endif
--------------------------------------------------------------------------------
/Runtime/Playmaker/SetCustomDimension.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f199e60f747934effb1d8e3fce31d6df
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 336a9dcba70fd4d78891a30d09ef699d
3 | folderAsset: yes
4 | DefaultImporter:
5 | userData:
6 |
--------------------------------------------------------------------------------
/Runtime/Prefabs/GameAnalytics.prefab:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Runtime/Prefabs/GameAnalytics.prefab
--------------------------------------------------------------------------------
/Runtime/Prefabs/GameAnalytics.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a9d27d37bab3c447b8eb7a2a6756e952
3 | NativeFormatImporter:
4 | userData:
5 |
--------------------------------------------------------------------------------
/Runtime/SamsungTV.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3bf67f7f4b82ae14e904a5f1f77b3c2f
3 | folderAsset: yes
4 | timeCreated: 1473846375
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Runtime/SamsungTV/GameAnalytics.SamsungTV.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Runtime/SamsungTV/GameAnalytics.SamsungTV.dll
--------------------------------------------------------------------------------
/Runtime/SamsungTV/GameAnalytics.SamsungTV.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0f62e1daf300cc540841be311ff17de8
3 | timeCreated: 1474581327
4 | licenseType: Pro
5 | PluginImporter:
6 | serializedVersion: 1
7 | iconMap: {}
8 | executionOrder: {}
9 | isPreloaded: 0
10 | platformData:
11 | Any:
12 | enabled: 0
13 | settings: {}
14 | Editor:
15 | enabled: 0
16 | settings:
17 | DefaultValueInitialized: true
18 | SamsungTV:
19 | enabled: 1
20 | settings: {}
21 | WindowsStoreApps:
22 | enabled: 0
23 | settings:
24 | CPU: AnyCPU
25 | userData:
26 | assetBundleName:
27 | assetBundleVariant:
28 |
--------------------------------------------------------------------------------
/Runtime/SamsungTV/Mono.Data.Sqlite.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GameAnalytics/GA-SDK-UNITY/9695e3360ca3535c148eff60da7aaac043f360bd/Runtime/SamsungTV/Mono.Data.Sqlite.dll
--------------------------------------------------------------------------------
/Runtime/SamsungTV/Mono.Data.Sqlite.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 20bf6fb24fdb6204680a36dddcfc1217
3 | timeCreated: 1473846400
4 | licenseType: Pro
5 | PluginImporter:
6 | serializedVersion: 1
7 | iconMap: {}
8 | executionOrder: {}
9 | isPreloaded: 0
10 | platformData:
11 | Any:
12 | enabled: 0
13 | settings: {}
14 | Editor:
15 | enabled: 0
16 | settings:
17 | DefaultValueInitialized: true
18 | SamsungTV:
19 | enabled: 1
20 | settings: {}
21 | WindowsStoreApps:
22 | enabled: 0
23 | settings:
24 | CPU: AnyCPU
25 | userData:
26 | assetBundleName:
27 | assetBundleVariant:
28 |
--------------------------------------------------------------------------------
/Runtime/SamsungTV/sqlite3.c.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d485564365158ac468bb985d519a87b3
3 | timeCreated: 1474580030
4 | licenseType: Pro
5 | PluginImporter:
6 | serializedVersion: 1
7 | iconMap: {}
8 | executionOrder: {}
9 | isPreloaded: 0
10 | platformData:
11 | Any:
12 | enabled: 0
13 | settings: {}
14 | Editor:
15 | enabled: 0
16 | settings:
17 | DefaultValueInitialized: true
18 | SamsungTV:
19 | enabled: 1
20 | settings: {}
21 | userData:
22 | assetBundleName:
23 | assetBundleVariant:
24 |
--------------------------------------------------------------------------------
/Runtime/SamsungTV/sqlite3.h.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 496a0307096f3cb4e816f8e580b26bf1
3 | timeCreated: 1474580030
4 | licenseType: Pro
5 | PluginImporter:
6 | serializedVersion: 1
7 | iconMap: {}
8 | executionOrder: {}
9 | isPreloaded: 0
10 | platformData:
11 | Any:
12 | enabled: 0
13 | settings: {}
14 | Editor:
15 | enabled: 0
16 | settings:
17 | DefaultValueInitialized: true
18 | SamsungTV:
19 | enabled: 1
20 | settings: {}
21 | userData:
22 | assetBundleName:
23 | assetBundleVariant:
24 |
--------------------------------------------------------------------------------
/Runtime/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 98054805af81e4bb89e1b012a33d02e9
3 | DefaultImporter:
4 | userData:
5 |
--------------------------------------------------------------------------------
/Runtime/Scripts/ATT.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 98690bbca5f4c48c1ae7d15d7e184d53
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/ATT/GameAnalyticsATTClient.cs:
--------------------------------------------------------------------------------
1 | #if UNITY_IOS || UNITY_TVOS
2 | using AOT;
3 |
4 | namespace GameAnalyticsSDK.iOS
5 | {
6 | public class GameAnalyticsATTClient
7 | {
8 | #region Singleton
9 |
10 | private GameAnalyticsATTClient()
11 | {
12 | }
13 |
14 | public static GameAnalyticsATTClient Instance { get; } = new GameAnalyticsATTClient();
15 |
16 | #endregion
17 |
18 | private static IGameAnalyticsATTListener _attListener;
19 |
20 | [MonoPInvokeCallback(typeof(GameAnalyticsATTObjCBridge.GameAnalyticsATTListenerNotDetermined))]
21 | private static void GameAnalyticsATTListenerNotDetermined()
22 | {
23 | _attListener?.GameAnalyticsATTListenerNotDetermined();
24 | }
25 |
26 | [MonoPInvokeCallback(typeof(GameAnalyticsATTObjCBridge.GameAnalyticsATTListenerRestricted))]
27 | private static void GameAnalyticsATTListenerRestricted()
28 | {
29 | _attListener?.GameAnalyticsATTListenerRestricted();
30 | }
31 |
32 | [MonoPInvokeCallback(typeof(GameAnalyticsATTObjCBridge.GameAnalyticsATTListenerDenied))]
33 | private static void GameAnalyticsATTListenerDenied()
34 | {
35 | _attListener?.GameAnalyticsATTListenerDenied();
36 | }
37 |
38 | [MonoPInvokeCallback(typeof(GameAnalyticsATTObjCBridge.GameAnalyticsATTListenerAuthorized))]
39 | private static void GameAnalyticsATTListenerAuthorized()
40 | {
41 | _attListener?.GameAnalyticsATTListenerAuthorized();
42 | }
43 |
44 | public void RequestTrackingAuthorization(IGameAnalyticsATTListener listener)
45 | {
46 | _attListener = listener;
47 | GameAnalyticsATTObjCBridge.GameAnalyticsRequestTrackingAuthorization(GameAnalyticsATTListenerNotDetermined, GameAnalyticsATTListenerRestricted,
48 | GameAnalyticsATTListenerDenied, GameAnalyticsATTListenerAuthorized);
49 | }
50 | }
51 | }
52 | #endif
53 |
--------------------------------------------------------------------------------
/Runtime/Scripts/ATT/GameAnalyticsATTClient.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b998bd7e85fce46a4ade4beb78edf1c9
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Runtime/Scripts/ATT/GameAnalyticsATTObjCBridge.cs:
--------------------------------------------------------------------------------
1 | #if UNITY_IOS || UNITY_TVOS
2 | using System.Runtime.InteropServices;
3 |
4 | namespace GameAnalyticsSDK.iOS
5 | {
6 | public static class GameAnalyticsATTObjCBridge
7 | {
8 | internal delegate void GameAnalyticsATTListenerNotDetermined();
9 | internal delegate void GameAnalyticsATTListenerRestricted();
10 | internal delegate void GameAnalyticsATTListenerDenied();
11 | internal delegate void GameAnalyticsATTListenerAuthorized();
12 |
13 | [DllImport("__Internal")]
14 | internal static extern void GameAnalyticsRequestTrackingAuthorization(
15 | GameAnalyticsATTListenerNotDetermined gameAnalyticsATTListenerNotDetermined,
16 | GameAnalyticsATTListenerRestricted gameAnalyticsATTListenerRestricted,
17 | GameAnalyticsATTListenerDenied gameAnalyticsATTListenerDenied,
18 | GameAnalyticsATTListenerAuthorized gameAnalyticsATTListenerAuthorized);
19 | }
20 | }
21 | #endif
22 |
--------------------------------------------------------------------------------
/Runtime/Scripts/ATT/GameAnalyticsATTObjCBridge.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 76cd2783d53fd4bfda5c04439f8dd1bd
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Enums.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 |
4 | namespace GameAnalyticsSDK
5 | {
6 | public enum GAErrorSeverity
7 | {
8 | Undefined = 0,
9 | Debug = 1,
10 | Info = 2,
11 | Warning = 3,
12 | Error = 4,
13 | Critical = 5
14 | }
15 |
16 | public enum GAProgressionStatus
17 | {
18 | //Undefined progression
19 | Undefined = 0,
20 | // User started progression
21 | Start = 1,
22 | // User succesfully ended a progression
23 | Complete = 2,
24 | // User failed a progression
25 | Fail = 3
26 | }
27 |
28 | public enum GAResourceFlowType
29 | {
30 | //Undefined progression
31 | Undefined = 0,
32 | // Source: Used when adding resource to a user
33 | Source = 1,
34 | // Sink: Used when removing a resource from a user
35 | Sink = 2
36 | }
37 |
38 | public enum GAAdAction
39 | {
40 | Undefined = 0,
41 | Clicked = 1,
42 | Show = 2,
43 | FailedShow = 3,
44 | RewardReceived = 4,
45 | Request = 5,
46 | Loaded = 6
47 | }
48 |
49 | public enum GAAdType
50 | {
51 | Undefined = 0,
52 | Video = 1,
53 | RewardedVideo = 2,
54 | Playable = 3,
55 | Interstitial = 4,
56 | OfferWall = 5,
57 | Banner = 6,
58 | AppOpen = 7
59 | }
60 |
61 | public enum GAAdError
62 | {
63 | Undefined = 0,
64 | Unknown = 1,
65 | Offline = 2,
66 | NoFill = 3,
67 | InternalError = 4,
68 | InvalidRequest = 5,
69 | UnableToPrecache = 6
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Enums.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: efee5ff52c83843e08be583cbb6f3c5e
3 | timeCreated: 1454583020
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ca431681e0420425ab6fe704950724ad
3 | folderAsset: yes
4 | timeCreated: 1454582284
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GAValidator.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2f5d575b6c7034a7385fb0ee45564a2e
3 | timeCreated: 1476364280
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Ads.cs:
--------------------------------------------------------------------------------
1 | // This class handles game design events, such as kills, deaths, high scores, etc.
2 |
3 | using UnityEngine;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using GameAnalyticsSDK.Wrapper;
7 |
8 | namespace GameAnalyticsSDK.Events
9 | {
10 | public static class GA_Ads
11 | {
12 | #region public methods
13 |
14 | ///
15 | /// Creates a new event
16 | ///
17 | /// Action of ad (for example loaded, show).
18 | /// Type of ad (for video, interstitial).
19 | /// Name of ad SDK.
20 | /// Placement of ad or identifier of the ad in the app
21 | /// Duration of ad video
22 | /// Custom fields.
23 | public static void NewEvent(GAAdAction adAction, GAAdType adType, string adSdkName, string adPlacement, long duration, IDictionary fields, bool mergeFields)
24 | {
25 | GA_Wrapper.AddAdEventWithDuration(adAction, adType, adSdkName, adPlacement, duration, fields, mergeFields);
26 | }
27 |
28 | ///
29 | /// Creates a new event
30 | ///
31 | /// Action of ad (for example loaded, show).
32 | /// Type of ad (for video, interstitial).
33 | /// Name of ad SDK.
34 | /// Placement of ad or identifier of the ad in the app
35 | /// Error reason for no ad available
36 | /// Custom fields.
37 | public static void NewEvent(GAAdAction adAction, GAAdType adType, string adSdkName, string adPlacement, GAAdError noAdReason, IDictionary fields, bool mergeFields = false)
38 | {
39 | GA_Wrapper.AddAdEventWithReason(adAction, adType, adSdkName, adPlacement, noAdReason, fields, mergeFields);
40 | }
41 |
42 | ///
43 | /// Creates a new event
44 | ///
45 | /// Action of ad (for example loaded, show).
46 | /// Type of ad (for video, interstitial).
47 | /// Name of ad SDK.
48 | /// Placement of ad or identifier of the ad in the app
49 | /// Custom fields.
50 | public static void NewEvent(GAAdAction adAction, GAAdType adType, string adSdkName, string adPlacement, IDictionary fields, bool mergeFields = false)
51 | {
52 | GA_Wrapper.AddAdEvent(adAction, adType, adSdkName, adPlacement, fields, mergeFields);
53 | }
54 |
55 | #endregion
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Ads.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 55fff062c66344373bcb93c2873a3b81
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Business.cs:
--------------------------------------------------------------------------------
1 | ///
2 | /// This class handles business events, such as ingame purchases.
3 | ///
4 |
5 | using UnityEngine;
6 | using System.Collections;
7 | using System.Collections.Generic;
8 | using GameAnalyticsSDK.Wrapper;
9 |
10 | namespace GameAnalyticsSDK.Events
11 | {
12 | public static class GA_Business
13 | {
14 | #region public methods
15 |
16 | #if (UNITY_IOS || UNITY_TVOS)
17 | public static void NewEvent(string currency, int amount, string itemType, string itemId, string cartType, string receipt, bool autoFetchReceipt, IDictionary fields, bool mergeFields)
18 | {
19 | if(autoFetchReceipt)
20 | {
21 | GA_Wrapper.AddBusinessEventAndAutoFetchReceipt(currency, amount, itemType, itemId, cartType, fields, mergeFields);
22 | }
23 | else
24 | {
25 | GA_Wrapper.AddBusinessEvent(currency, amount, itemType, itemId, cartType, receipt, fields, mergeFields);
26 | }
27 | }
28 |
29 | public static void NewEvent(string currency, int amount, string itemType, string itemId, string cartType, IDictionary fields, bool mergeFields)
30 | {
31 | NewEvent(currency, amount, itemType, itemId, cartType, null, false, fields, mergeFields);
32 | }
33 | #endif
34 |
35 | #if (UNITY_ANDROID)
36 | public static void NewEventGooglePlay(string currency, int amount, string itemType, string itemId, string cartType, string receipt, string signature, IDictionary fields, bool mergeFields)
37 | {
38 | GA_Wrapper.AddBusinessEventWithReceipt(currency, amount, itemType, itemId, cartType, receipt, "google_play", signature, fields, mergeFields);
39 | }
40 | #endif
41 |
42 | #if (!UNITY_IOS && !UNITY_TVOS)
43 | public static void NewEvent(string currency, int amount, string itemType, string itemId, string cartType, IDictionary fields, bool mergeFields)
44 | {
45 | GA_Wrapper.AddBusinessEvent(currency, amount, itemType, itemId, cartType, fields, mergeFields);
46 | }
47 | #endif
48 | #endregion
49 | }
50 | }
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Business.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9c87e364230a6ce459923436a2215b15
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Debug.cs:
--------------------------------------------------------------------------------
1 | ///
2 | /// This class handles error and exception messages, and makes sure they are added to the Quality category
3 | ///
4 |
5 | using UnityEngine;
6 | using System.Collections;
7 | using System.Collections.Generic;
8 | using System.Text;
9 |
10 | namespace GameAnalyticsSDK.Events
11 | {
12 | public static class GA_Debug
13 | {
14 | public static int MaxErrorCount = 10;
15 |
16 | private static int _errorCount = 0;
17 |
18 | private static bool _showLogOnGUI = false;
19 | public static List Messages;
20 |
21 | ///
22 | /// If SubmitErrors is enabled on the GA object this makes sure that any exceptions or errors are submitted to the GA server
23 | ///
24 | ///
25 | /// The message
26 | ///
27 | ///
28 | /// The exception stack trace
29 | ///
30 | ///
31 | /// The type of the log message (we only submit errors and exceptions to the GA server)
32 | ///
33 | public static void HandleLog(string logString, string stackTrace, LogType type)
34 | {
35 | //Only used for testing
36 | if (_showLogOnGUI)
37 | {
38 | if (Messages == null)
39 | {
40 | Messages = new List();
41 | }
42 | Messages.Add(logString);
43 | }
44 |
45 | //We only submit exceptions and errors
46 | if (GameAnalytics.SettingsGA != null && GameAnalytics.SettingsGA.SubmitErrors && _errorCount < MaxErrorCount && type != LogType.Log)
47 | {
48 | if (string.IsNullOrEmpty (stackTrace)) {
49 | stackTrace = "";
50 | }
51 | _errorCount++;
52 |
53 | string lString = logString.Replace('"', '\'').Replace('\n', ' ').Replace('\r', ' ');
54 | string sTrace = stackTrace.Replace('"', '\'').Replace('\n', ' ').Replace('\r', ' ');
55 |
56 | string _message = lString + " " + sTrace;
57 | if (_message.Length > 8192) {
58 | _message = _message.Substring (0, 8191);
59 | }
60 |
61 | SubmitError(_message, type);
62 | }
63 | }
64 |
65 | private static void SubmitError(string message, LogType type)
66 | {
67 | GAErrorSeverity severity = GAErrorSeverity.Info;
68 |
69 | switch (type)
70 | {
71 | case LogType.Assert:
72 | severity = GAErrorSeverity.Info;
73 | break;
74 | case LogType.Error:
75 | severity = GAErrorSeverity.Error;
76 | break;
77 | case LogType.Exception:
78 | severity = GAErrorSeverity.Critical;
79 | break;
80 | case LogType.Log:
81 | severity = GAErrorSeverity.Debug;
82 | break;
83 | case LogType.Warning:
84 | severity = GAErrorSeverity.Warning;
85 | break;
86 | }
87 |
88 | GA_Error.NewEvent(severity, message, null, false);
89 | }
90 |
91 | ///
92 | /// Used only for testing purposes
93 | ///
94 | public static void EnabledLog ()
95 | {
96 | _showLogOnGUI = true;
97 | }
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Debug.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6455957878877439898d50d5143ff4f6
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Design.cs:
--------------------------------------------------------------------------------
1 | // This class handles game design events, such as kills, deaths, high scores, etc.
2 |
3 | using UnityEngine;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using GameAnalyticsSDK.Wrapper;
7 |
8 | namespace GameAnalyticsSDK.Events
9 | {
10 | public static class GA_Design
11 | {
12 | #region public methods
13 |
14 | ///
15 | /// Creates a new event
16 | ///
17 | ///
18 | /// A event string you define
19 | ///
20 | ///
21 | /// A value of the event
22 | ///
23 | /// Custom fields.
24 | public static void NewEvent(string eventName, float eventValue, IDictionary fields, bool mergeFields)
25 | {
26 | CreateNewEvent(eventName, eventValue, fields, mergeFields);
27 | }
28 |
29 | ///
30 | /// Creates a new event
31 | ///
32 | ///
33 | /// A event string you define
34 | ///
35 | /// Custom fields.
36 | public static void NewEvent(string eventName, IDictionary fields, bool mergeFields)
37 | {
38 | CreateNewEvent(eventName, null, fields, mergeFields);
39 | }
40 |
41 | #endregion
42 |
43 | #region private methods
44 |
45 | ///
46 | /// Adds a custom event to the submit queue (see GA_Queue)
47 | ///
48 | ///
49 | /// Identifies the event so this should be as descriptive as possible. PickedUpAmmo might be a good event name. EventTwo is a bad event name!
50 | ///
51 | ///
52 | /// A value relevant to the event. F.x. if the player picks up some shotgun ammo the eventName could be "PickedUpAmmo" and this value could be "Shotgun". This can be null
53 | ///
54 | /// Custom fields.
55 | private static void CreateNewEvent(string eventName, float? eventValue, IDictionary fields, bool mergeFields)
56 | {
57 | if(eventValue.HasValue)
58 | {
59 | GA_Wrapper.AddDesignEvent(eventName, eventValue.Value, fields, mergeFields);
60 | }
61 | else
62 | {
63 | GA_Wrapper.AddDesignEvent(eventName, fields, mergeFields);
64 | }
65 | }
66 |
67 | #endregion
68 | }
69 | }
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Design.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cc498e43de17b2e4e8cc95006c5007c4
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Error.cs:
--------------------------------------------------------------------------------
1 | ///
2 | /// This class handles quality (QA) events, such as crashes, fps, etc.
3 | ///
4 |
5 | using UnityEngine;
6 | using System.Collections;
7 | using System.Collections.Generic;
8 | using System;
9 | using GameAnalyticsSDK.Wrapper;
10 |
11 | namespace GameAnalyticsSDK.Events
12 | {
13 | public static class GA_Error
14 | {
15 | #region public methods
16 |
17 | public static void NewEvent(GAErrorSeverity severity, string message, IDictionary fields, bool mergeFields)
18 | {
19 | CreateNewEvent(severity, message, fields, mergeFields);
20 | }
21 |
22 | #endregion
23 |
24 | #region private methods
25 |
26 | private static void CreateNewEvent(GAErrorSeverity severity, string message, IDictionary fields, bool mergeFields = false)
27 | {
28 | GA_Wrapper.AddErrorEvent(severity, message, fields, mergeFields);
29 | }
30 |
31 | #endregion
32 | }
33 | }
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Error.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e80bd2212bced4389864d19a834a7ae2
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Progression.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using GameAnalyticsSDK.Wrapper;
5 |
6 | namespace GameAnalyticsSDK.Events
7 | {
8 | public static class GA_Progression
9 | {
10 | #region public methods
11 |
12 | public static void NewEvent(GAProgressionStatus progressionStatus, string progression01, IDictionary fields, bool mergeFields)
13 | {
14 | CreateEvent(progressionStatus, progression01, null, null, null, fields, mergeFields);
15 | }
16 |
17 | public static void NewEvent(GAProgressionStatus progressionStatus, string progression01, string progression02, IDictionary fields, bool mergeFields)
18 | {
19 | CreateEvent(progressionStatus, progression01, progression02, null, null, fields, mergeFields);
20 | }
21 |
22 | public static void NewEvent(GAProgressionStatus progressionStatus, string progression01, string progression02, string progression03, IDictionary fields, bool mergeFields)
23 | {
24 | CreateEvent(progressionStatus, progression01, progression02, progression03, null, fields, mergeFields);
25 | }
26 |
27 | public static void NewEvent(GAProgressionStatus progressionStatus, string progression01, int score, IDictionary fields, bool mergeFields)
28 | {
29 | CreateEvent(progressionStatus, progression01, null, null, score, fields, mergeFields);
30 | }
31 |
32 | public static void NewEvent(GAProgressionStatus progressionStatus, string progression01, string progression02, int score, IDictionary fields, bool mergeFields)
33 | {
34 | CreateEvent(progressionStatus, progression01, progression02, null, score, fields, mergeFields);
35 | }
36 |
37 | public static void NewEvent(GAProgressionStatus progressionStatus, string progression01, string progression02, string progression03, int score, IDictionary fields, bool mergeFields)
38 | {
39 | CreateEvent(progressionStatus, progression01, progression02, progression03, score, fields, mergeFields);
40 | }
41 |
42 | #endregion
43 |
44 | #region private methods
45 |
46 | private static void CreateEvent(GAProgressionStatus progressionStatus, string progression01, string progression02, string progression03, int? score, IDictionary fields, bool mergeFields)
47 | {
48 | if(score.HasValue)
49 | {
50 | GA_Wrapper.AddProgressionEventWithScore(progressionStatus, progression01, progression02, progression03, score.Value, fields, mergeFields);
51 | }
52 | else
53 | {
54 | GA_Wrapper.AddProgressionEvent(progressionStatus, progression01, progression02, progression03, fields, mergeFields);
55 | }
56 | }
57 |
58 | #endregion
59 | }
60 | }
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Progression.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b06eb2deb6e7b4a288b01906f178cbaa
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Resource.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using GameAnalyticsSDK.Wrapper;
5 |
6 | namespace GameAnalyticsSDK.Events
7 | {
8 | public static class GA_Resource
9 | {
10 | #region public methods
11 |
12 | public static void NewEvent(GAResourceFlowType flowType, string currency, float amount, string itemType, string itemId, IDictionary fields, bool mergeFields)
13 | {
14 | GA_Wrapper.AddResourceEvent(flowType, currency, amount, itemType, itemId, fields, mergeFields);
15 | }
16 |
17 | #endregion
18 | }
19 | }
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Resource.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f303caa895c244cb1817893da8a79602
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Setup.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using GameAnalyticsSDK.Utilities;
5 | using GameAnalyticsSDK.Wrapper;
6 | using GameAnalyticsSDK.Validators;
7 |
8 | namespace GameAnalyticsSDK.Events
9 | {
10 | public static class GA_Setup
11 | {
12 | #region public methods
13 |
14 | public static void SetAvailableCustomDimensions01 (List customDimensions)
15 | {
16 | if (GameAnalyticsSDK.Validators.GAValidator.ValidateCustomDimensions(customDimensions.ToArray()))
17 | {
18 | string json = GA_MiniJSON.Serialize(customDimensions);
19 | GA_Wrapper.SetAvailableCustomDimensions01(json);
20 | }
21 | }
22 |
23 | public static void SetAvailableCustomDimensions02 (List customDimensions)
24 | {
25 | if (GameAnalyticsSDK.Validators.GAValidator.ValidateCustomDimensions (customDimensions.ToArray ())) {
26 | string json = GA_MiniJSON.Serialize(customDimensions);
27 | GA_Wrapper.SetAvailableCustomDimensions02 (json);
28 | }
29 | }
30 |
31 | public static void SetAvailableCustomDimensions03 (List customDimensions)
32 | {
33 | if (GameAnalyticsSDK.Validators.GAValidator.ValidateCustomDimensions (customDimensions.ToArray ())) {
34 | string json = GA_MiniJSON.Serialize(customDimensions);
35 | GA_Wrapper.SetAvailableCustomDimensions03 (json);
36 | }
37 | }
38 |
39 | public static void SetAvailableResourceCurrencies (List resourceCurrencies)
40 | {
41 | if (GameAnalyticsSDK.Validators.GAValidator.ValidateResourceCurrencies (resourceCurrencies.ToArray ())) {
42 | string json = GA_MiniJSON.Serialize(resourceCurrencies);
43 | GA_Wrapper.SetAvailableResourceCurrencies (json);
44 | }
45 | }
46 |
47 | public static void SetAvailableResourceItemTypes (List resourceItemTypes)
48 | {
49 | if (GameAnalyticsSDK.Validators.GAValidator.ValidateResourceItemTypes (resourceItemTypes.ToArray ())) {
50 | string json = GA_MiniJSON.Serialize(resourceItemTypes);
51 | GA_Wrapper.SetAvailableResourceItemTypes (json);
52 | }
53 | }
54 |
55 | public static void SetInfoLog (bool enabled)
56 | {
57 | GA_Wrapper.SetInfoLog (enabled);
58 | }
59 |
60 | public static void SetVerboseLog (bool enabled)
61 | {
62 | GA_Wrapper.SetVerboseLog (enabled);
63 | }
64 |
65 | public static void SetCustomDimension01 (string customDimension)
66 | {
67 | GA_Wrapper.SetCustomDimension01 (customDimension);
68 | }
69 |
70 | public static void SetCustomDimension02 (string customDimension)
71 | {
72 | GA_Wrapper.SetCustomDimension02 (customDimension);
73 | }
74 |
75 |
76 | public static void SetCustomDimension03 (string customDimension)
77 | {
78 | GA_Wrapper.SetCustomDimension03(customDimension);
79 | }
80 |
81 | public static void SetGlobalCustomEventFields(IDictionary customFields)
82 | {
83 | GA_Wrapper.SetGlobalCustomEventFields(customFields);
84 | }
85 | public static void EnableSDKInitEvent(bool flag)
86 | {
87 | GA_Wrapper.EnableSDKInitEvent(flag);
88 | }
89 |
90 | public static void EnableFpsHistogram(bool flag)
91 | {
92 | GA_Wrapper.EnableFpsHistogram(flag);
93 | }
94 |
95 | public static void EnableMemoryHistogram(bool flag)
96 | {
97 | GA_Wrapper.EnableMemoryHistogram(flag);
98 | }
99 |
100 | public static void EnableHealthHardwareInfo(bool flag)
101 | {
102 | GA_Wrapper.EnableHealthHardwareInfo(flag);
103 | }
104 |
105 | #endregion
106 | }
107 | }
108 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_Setup.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ad35c27ecc9784217817c154d2ff09ff
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_SpecialEvents.cs:
--------------------------------------------------------------------------------
1 | ///
2 | /// This class handles special events unique to the Unity Wrapper, such as submitting level/scene changes, and delaying application quit
3 | /// until data has been sent.
4 | ///
5 |
6 | using UnityEngine;
7 | using System.Collections;
8 |
9 | namespace GameAnalyticsSDK.Events
10 | {
11 | public class GA_SpecialEvents : MonoBehaviour
12 | {
13 | /*[HideInInspector]
14 | public bool SubmitFpsAverage;
15 | [HideInInspector]
16 | public bool SubmitFpsCritical;
17 | [HideInInspector]
18 | public bool IncludeSceneChange;
19 | [HideInInspector]
20 | public int FpsCriticalThreshold;
21 | [HideInInspector]
22 | public int FpsSubmitInterval;*/
23 | #region private values
24 |
25 | private static int _frameCountAvg = 0;
26 | private static float _lastUpdateAvg = 0f;
27 | private int _frameCountCrit = 0;
28 | private float _lastUpdateCrit = 0f;
29 |
30 | private static int _criticalFpsCount = 0;
31 |
32 | private static int _fpsWaitTimeMultiplier = 1;
33 | private static float _lastPauseStartTime;
34 | private static float _pauseDurationAvg;
35 | private static float _pauseDurationCrit;
36 |
37 | #endregion
38 |
39 | #region unity derived methods
40 |
41 | public void Start ()
42 | {
43 | StartCoroutine(SubmitFPSRoutine());
44 | StartCoroutine(CheckCriticalFPSRoutine());
45 | }
46 |
47 | private void OnApplicationPause(bool pauseStatus)
48 | {
49 | if (GameAnalytics.SettingsGA == null
50 | || !GameAnalytics.SettingsGA.SubmitFpsAverage && !GameAnalytics.SettingsGA.SubmitFpsCritical)
51 | {
52 | return;
53 | }
54 |
55 | if (pauseStatus)
56 | {
57 | _lastPauseStartTime = Time.realtimeSinceStartup;
58 | }
59 | else
60 | {
61 | if (GameAnalytics.SettingsGA.SubmitFpsAverage)
62 | {
63 | _pauseDurationAvg += Time.realtimeSinceStartup - _lastPauseStartTime;
64 | }
65 |
66 | if (GameAnalytics.SettingsGA.SubmitFpsCritical)
67 | {
68 | _pauseDurationCrit += Time.realtimeSinceStartup - _lastPauseStartTime;
69 | }
70 | }
71 | }
72 |
73 | private IEnumerator SubmitFPSRoutine()
74 | {
75 | while(Application.isPlaying && GameAnalytics.SettingsGA != null && GameAnalytics.SettingsGA.SubmitFpsAverage)
76 | {
77 | int waitingTime = 30 * _fpsWaitTimeMultiplier;
78 | yield return new WaitForSecondsRealtime(waitingTime);
79 | _fpsWaitTimeMultiplier *= 2;
80 | SubmitFPS();
81 | }
82 | }
83 |
84 | private IEnumerator CheckCriticalFPSRoutine()
85 | {
86 | while(Application.isPlaying && GameAnalytics.SettingsGA != null && GameAnalytics.SettingsGA.SubmitFpsCritical)
87 | {
88 | yield return new WaitForSecondsRealtime(GameAnalytics.SettingsGA.FpsCirticalSubmitInterval);
89 | CheckCriticalFPS();
90 | }
91 | }
92 |
93 | public void Update()
94 | {
95 | //average FPS
96 | if (GameAnalytics.SettingsGA != null && GameAnalytics.SettingsGA.SubmitFpsAverage)
97 | {
98 | _frameCountAvg++;
99 | }
100 |
101 | //critical FPS
102 | if (GameAnalytics.SettingsGA != null && GameAnalytics.SettingsGA.SubmitFpsCritical)
103 | {
104 | _frameCountCrit++;
105 | }
106 | }
107 |
108 | public static void SubmitFPS()
109 | {
110 | //average FPS
111 | if (GameAnalytics.SettingsGA != null && GameAnalytics.SettingsGA.SubmitFpsAverage)
112 | {
113 | float timeSinceUpdate = Time.unscaledTime - _lastUpdateAvg - _pauseDurationAvg;
114 | _pauseDurationAvg = 0f;
115 |
116 | if (timeSinceUpdate > 1.0f)
117 | {
118 | float fpsSinceUpdate = _frameCountAvg / timeSinceUpdate;
119 | _lastUpdateAvg = Time.unscaledTime;
120 | _frameCountAvg = 0;
121 |
122 | if (fpsSinceUpdate > 0)
123 | {
124 | if(GameAnalytics.Initialized)
125 | GameAnalytics.NewDesignEvent("GA:AverageFPS", ((int)fpsSinceUpdate));
126 | }
127 | }
128 | }
129 |
130 | if (GameAnalytics.SettingsGA != null && GameAnalytics.SettingsGA.SubmitFpsCritical)
131 | {
132 | if (_criticalFpsCount > 0)
133 | {
134 | if(GameAnalytics.Initialized)
135 | GameAnalytics.NewDesignEvent("GA:CriticalFPS", _criticalFpsCount);
136 |
137 | _criticalFpsCount = 0;
138 | }
139 | }
140 | }
141 |
142 | public void CheckCriticalFPS()
143 | {
144 | //critical FPS
145 | if (GameAnalytics.SettingsGA != null && GameAnalytics.SettingsGA.SubmitFpsCritical)
146 | {
147 | float timeSinceUpdate = Time.unscaledTime - _lastUpdateCrit - _pauseDurationCrit;
148 | _pauseDurationCrit = 0f;
149 |
150 | if (timeSinceUpdate >= 1.0f)
151 | {
152 | float fpsSinceUpdate = _frameCountCrit / timeSinceUpdate;
153 | _lastUpdateCrit = Time.unscaledTime;
154 | _frameCountCrit = 0;
155 |
156 | if (fpsSinceUpdate <= GameAnalytics.SettingsGA.FpsCriticalThreshold)
157 | {
158 | _criticalFpsCount++;
159 | }
160 | }
161 | }
162 | }
163 |
164 | #endregion
165 | }
166 | }
167 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Events/GA_SpecialEvents.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: adefe18d2f40dd84c8666cc766d5de82
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/GameAnalytics.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1488bee7925fe433fbddf989c50ad4ff
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: -100
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Runtime/Scripts/IGameAnalyticsATTListener.cs:
--------------------------------------------------------------------------------
1 |
2 |
3 | namespace GameAnalyticsSDK
4 | {
5 | public interface IGameAnalyticsATTListener
6 | {
7 | void GameAnalyticsATTListenerNotDetermined();
8 | void GameAnalyticsATTListenerRestricted();
9 | void GameAnalyticsATTListenerDenied();
10 | void GameAnalyticsATTListenerAuthorized();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Runtime/Scripts/IGameAnalyticsATTListener.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f42b062f02b89464abfa8001c5249524
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Setup.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9627816acd56b4effa48a3cdf94616f7
3 | folderAsset: yes
4 | timeCreated: 1454584200
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Setup/Settings.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6f78192cec1344d83a177ac5e6139ab3
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/State.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3dd2fb1c891c84516814235531c7ad65
3 | folderAsset: yes
4 | timeCreated: 1476432369
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Runtime/Scripts/State/GAState.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using GameAnalyticsSDK.Events;
5 | using GameAnalyticsSDK.Setup;
6 | using GameAnalyticsSDK.Wrapper;
7 | using System;
8 |
9 | namespace GameAnalyticsSDK.State
10 | {
11 |
12 | internal static class GAState
13 | {
14 |
15 | private static GameAnalyticsSDK.Setup.Settings _settings;
16 |
17 | public static void Init ()
18 | {
19 | try {
20 | _settings = (GameAnalyticsSDK.Setup.Settings)Resources.Load ("GameAnalytics/Settings", typeof(GameAnalyticsSDK.Setup.Settings));
21 | } catch (Exception ex) {
22 | Debug.Log ("Could not get Settings during event validation \n" + ex.ToString ());
23 | }
24 |
25 | }
26 |
27 | private static bool ListContainsString (List _list, string _string)
28 | {
29 | if (_list.Contains (_string))
30 | return true;
31 | return false;
32 | }
33 |
34 |
35 | #region Public methods
36 |
37 | public static bool IsManualSessionHandlingEnabled()
38 | {
39 | return _settings.UseManualSessionHandling;
40 | }
41 |
42 | public static bool HasAvailableResourceCurrency (string _currency)
43 | {
44 | if (ListContainsString (_settings.ResourceCurrencies, _currency))
45 | return true;
46 | return false;
47 | }
48 |
49 | public static bool HasAvailableResourceItemType(string _itemType)
50 | {
51 | if (ListContainsString (_settings.ResourceItemTypes, _itemType))
52 | return true;
53 | return false;
54 | }
55 |
56 | public static bool HasAvailableCustomDimensions01(string _dimension01)
57 | {
58 | if (ListContainsString (_settings.CustomDimensions01, _dimension01))
59 | return true;
60 | return false;
61 | }
62 |
63 | public static bool HasAvailableCustomDimensions02(string _dimension02)
64 | {
65 | if (ListContainsString (_settings.CustomDimensions02, _dimension02)) {
66 | return true;
67 | }
68 | return false;
69 | }
70 |
71 | public static bool HasAvailableCustomDimensions03(string _dimension03)
72 | {
73 | if (ListContainsString (_settings.CustomDimensions03, _dimension03))
74 | return true;
75 | return false;
76 | }
77 |
78 | #endregion
79 |
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/Runtime/Scripts/State/GAState.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 35cbb352079de40f7aa3f481c1fa42c1
3 | timeCreated: 1476432034
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Utilities.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c39146483030f4774b89297ed62d60b0
3 | folderAsset: yes
4 | timeCreated: 1454583652
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Utilities/GA_MiniJson.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fb8bd556074cc4e21aa07b59846598e4
3 | MonoImporter:
4 | serializedVersion: 2
5 | defaultReferences: []
6 | executionOrder: 0
7 | icon: {instanceID: 0}
8 | userData:
9 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Wrapper.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2ab1357cf54ee445096f8fcec7cebb4f
3 | folderAsset: yes
4 | timeCreated: 1454585571
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Wrapper/GA_AndroidWrapper.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 95ca1d00b4a004e3f9f69da6258ecdb1
3 | timeCreated: 1433512546
4 | licenseType: Free
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Runtime/Scripts/Wrapper/GA_MonoWrapper.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using GameAnalyticsSDK.Utilities;
5 |
6 | namespace GameAnalyticsSDK.Wrapper
7 | {
8 | public partial class GA_Wrapper
9 | {
10 | #if (UNITY_STANDALONE || UNITY_WP_8_1 || UNITY_SAMSUNGTV) && (!UNITY_EDITOR)
11 |
12 | private class UnityRemoteConfigsListener : GameAnalyticsSDK.Net.IRemoteConfigsListener
13 | {
14 | public void OnRemoteConfigsUpdated()
15 | {
16 | GameAnalytics.RemoteConfigsUpdated();
17 | }
18 | }
19 |
20 | private static readonly UnityRemoteConfigsListener unityRemoteConfigsListener = new UnityRemoteConfigsListener();
21 |
22 | private static void configureAvailableCustomDimensions01(string list)
23 | {
24 | IList