update GameAnlytics

This commit is contained in:
atusi 2022-02-21 11:18:34 +09:00
parent 5263fee993
commit 14c8e7365b
243 changed files with 186761 additions and 8 deletions

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 98edb85161ea149fbaa05683b2bfd504
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,499 @@
using UnityEditor;
namespace GameAnalyticsSDK.Editor
{
public class GA_AssetPostprocessor : AssetPostprocessor
{
private const string AssetsPrependPath = GA_SettingsInspector.IsCustomPackage ? "Packages/com.gameanalytics.sdk/Runtime" : "Assets/GameAnalytics";
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
{
#region iOS and tvOS
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/tvOS/GameAnalyticsTVOS.h") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.tvOS) || importer.GetCompatibleWithPlatform(BuildTarget.iOS)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, true);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/tvOS/GameAnalyticsTVOSUnity.m") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.tvOS) || importer.GetCompatibleWithPlatform(BuildTarget.iOS)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, true);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/tvOS/libGameAnalyticsTVOS.a") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.tvOS) || importer.GetCompatibleWithPlatform(BuildTarget.iOS)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, true);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
#endregion // iOS and tvOS
#region General
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/GameAnalytics.dll") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() ||
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneLinux64) ||
#if UNITY_2019_2_OR_NEWER
#else
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneLinux) ||
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal) ||
#endif
#if UNITY_2017_3_OR_NEWER
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneOSX) ||
#else
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel) ||
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64) ||
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal) ||
#endif
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneWindows) ||
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneWindows64) ||
importer.GetCompatibleWithPlatform(BuildTarget.WSAPlayer)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, true);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, true);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, true);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, true);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, true);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, true);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, true);
importer.SetCompatibleWithPlatform(BuildTarget.Tizen, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, true);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, true);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
#endregion // General
#region Standalone
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/Windows/x86/sqlite3.dll") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.StandaloneWindows)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, true);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/Windows/x64/sqlite3.dll") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.StandaloneWindows64)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, true);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/Linux/sqlite3.so") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() ||
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneLinux64)
#if UNITY_2019_2_OR_NEWER
#else
|| !importer.GetCompatibleWithPlatform(BuildTarget.StandaloneLinux) ||
!importer.GetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal)
#endif
))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, true);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, true);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, true);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
#endregion // Standalone
#region WebGL
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/WebGL/GameAnalytics.WebGL.dll") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.WebGL)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, true);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/WebGL/HandleIO.jslib") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.WebGL)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, true);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/WebGL/Mono.Data.Sqlite.dll") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.WebGL)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, true);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/WebGL/sqlite.c") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.WebGL)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, true);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/WebGL/sqlite.h") as PluginImporter;
if(importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.WebGL)))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, true);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, false);
importer.SaveAndReimport();
}
}
#endregion // WebGL
#region WSA
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/WSA/x86/GameAnalytics.UWP.dll") as PluginImporter;
if (importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.WSAPlayer) ||
!importer.GetPlatformData(BuildTarget.WSAPlayer, "SDK").Equals("UWP") ||
!importer.GetPlatformData(BuildTarget.WSAPlayer, "CPU").Equals("X86") ||
!importer.GetPlatformData(BuildTarget.WSAPlayer, "ScriptingBackend").Equals("Il2Cpp")))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, true);
importer.SetPlatformData(BuildTarget.WSAPlayer, "SDK", "UWP");
importer.SetPlatformData(BuildTarget.WSAPlayer, "CPU", "X86");
importer.SetPlatformData(BuildTarget.WSAPlayer, "ScriptingBackend", "Il2Cpp");
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/WSA/x64/GameAnalytics.UWP.dll") as PluginImporter;
if (importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.WSAPlayer) ||
!importer.GetPlatformData(BuildTarget.WSAPlayer, "SDK").Equals("UWP") ||
!importer.GetPlatformData(BuildTarget.WSAPlayer, "CPU").Equals("X64") ||
!importer.GetPlatformData(BuildTarget.WSAPlayer, "ScriptingBackend").Equals("Il2Cpp")))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, true);
importer.SetPlatformData(BuildTarget.WSAPlayer, "SDK", "UWP");
importer.SetPlatformData(BuildTarget.WSAPlayer, "CPU", "X64");
importer.SetPlatformData(BuildTarget.WSAPlayer, "ScriptingBackend", "Il2Cpp");
importer.SaveAndReimport();
}
}
{
PluginImporter importer = AssetImporter.GetAtPath(AssetsPrependPath + "/Plugins/WSA/ARM/GameAnalytics.UWP.dll") as PluginImporter;
if (importer != null && (importer.GetCompatibleWithAnyPlatform() || !importer.GetCompatibleWithPlatform(BuildTarget.WSAPlayer) ||
!importer.GetPlatformData(BuildTarget.WSAPlayer, "SDK").Equals("UWP") ||
!importer.GetPlatformData(BuildTarget.WSAPlayer, "CPU").Equals("ARM") ||
!importer.GetPlatformData(BuildTarget.WSAPlayer, "ScriptingBackend").Equals("Il2Cpp")))
{
importer.SetCompatibleWithAnyPlatform(false);
importer.SetCompatibleWithEditor(false);
importer.SetCompatibleWithPlatform(BuildTarget.Android, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux64, false);
#if UNITY_2019_2_OR_NEWER
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinux, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneLinuxUniversal, false);
#endif
#if UNITY_2017_3_OR_NEWER
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSX, false);
#else
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXIntel64, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneOSXUniversal, false);
#endif
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, false);
importer.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false);
importer.SetCompatibleWithPlatform(BuildTarget.iOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.tvOS, false);
importer.SetCompatibleWithPlatform(BuildTarget.WebGL, false);
importer.SetCompatibleWithPlatform(BuildTarget.WSAPlayer, true);
importer.SetPlatformData(BuildTarget.WSAPlayer, "SDK", "UWP");
importer.SetPlatformData(BuildTarget.WSAPlayer, "CPU", "ARM");
importer.SetPlatformData(BuildTarget.WSAPlayer, "ScriptingBackend", "Il2Cpp");
importer.SaveAndReimport();
}
}
#endregion // WSA
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a2403619fc556407983e282336344f15
timeCreated: 1457357714
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,18 @@
using UnityEngine;
using UnityEditor;
namespace GameAnalyticsSDK.Editor
{
public class GA_Autorun : AssetPostprocessor
{
static void OnPostprocessAllAssets ( string[] importedAssets,string[] deletedAssets,string[] movedAssets,string[] movedFromAssetPaths)
{
string[] splitPath = Application.dataPath.Split('/');
if (!splitPath[splitPath.Length - 2].Equals("ga_unity_wrapper copy"))
{
GA_SettingsInspector.CheckForUpdates();
}
}
}
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0a3d477cdf26e4516ab204fc8fd9a841
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,64 @@
using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
namespace GameAnalyticsSDK
{
//Inspired from answer on answers.unity3d.com: http://answers.unity3d.com/questions/221651/yielding-with-www-in-editor.html
public static class GA_ContinuationManager
{
private class EditorCoroutine
{
public EditorCoroutine(IEnumerator routine, Func<bool> done)
{
Routine = routine;
Done = done;
}
public IEnumerator Routine { get; private set; }
public Func<bool> Done {get; private set;}
public Action ContinueWith { get; private set; }
}
private static readonly List<EditorCoroutine> jobs = new List<EditorCoroutine>();
public static void StartCoroutine(IEnumerator routine,Func<bool> done)
{
if (!jobs.Any())
{
EditorApplication.update += Update;
}
jobs.Add(new EditorCoroutine(routine,done));
}
private static void Update()
{
for (int i = jobs.Count-1; i>=0; --i)
{
var jobIt = jobs[i];
#if UNITY_2017_1_OR_NEWER
if (!jobIt.Routine.MoveNext()) //movenext is false if coroutine completed
{
jobs.RemoveAt(i);
}
#else
if (jobIt.Done())
{
if (!jobIt.Routine.MoveNext()) //movenext is false if coroutine completed
{
Debug.Log("GA_ContinuationManager.Update: Routine finished");
jobs.RemoveAt(i);
}
}
#endif
}
if (!jobs.Any())
{
EditorApplication.update -= Update;
}
}
}
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 546155fc8c8e946beb7aa56aa713067c
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,76 @@
using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic;
namespace GameAnalyticsSDK.Editor
{
public static class GA_EditorUtilities {
private const string XCaller = "unity";
private const string XCallerKey = "X-Caller";
private const string XCallerVersionKey = "X-Caller-Version";
private const string XCallerPlatformKey = "X-Caller-Platform";
private const string XAuthorizationKey = "X-Authorization";
private static string XCallerVersion
{
get {
return Application.unityVersion;
}
}
private static string XCallerPlatform
{
get {
EPlatform platform = EPlatform.Windows;
PlatformID platformId = Environment.OSVersion.Platform;
if (platformId == PlatformID.MacOSX) {
platform = EPlatform.Mac;
}
else if (platformId == PlatformID.Unix) {
platform = EPlatform.Linux;
}
else if (platformId == PlatformID.Win32NT ||
platformId == PlatformID.Win32S ||
platformId == PlatformID.Win32Windows ||
platformId == PlatformID.WinCE) {
platform = EPlatform.Windows;
}
return platform.ToString ();
}
}
public static Dictionary<string, string> WWWHeaders()
{
Dictionary<string, string> result = new Dictionary<string, string> ();
result [XCallerKey] = XCaller;
result [XCallerVersionKey] = XCallerVersion;
result [XCallerPlatformKey] = XCallerPlatform;
return result;
}
public static Dictionary<string, string> WWWHeadersWithAuthorization(string token)
{
Dictionary<string, string> result = new Dictionary<string, string> ();
result [XCallerKey] = XCaller;
result [XCallerVersionKey] = XCallerVersion;
result [XCallerPlatformKey] = XCallerPlatform;
result [XAuthorizationKey] = token;
return result;
}
}
public enum EPlatform
{
Windows,
Mac,
Linux
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: dfd276755e3d24398b20a727ba63f40a
timeCreated: 1433250864
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,124 @@
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Text.RegularExpressions;
namespace GameAnalyticsSDK.Editor
{
public static class GA_Menu
{
[MenuItem ("Window/GameAnalytics/Select Settings", false, 0)]
static void SelectGASettings ()
{
Selection.activeObject = GameAnalytics.SettingsGA;
}
[MenuItem ("Window/GameAnalytics/Setup Guide", false, 100)]
static void SetupAndTour ()
{
GA_SignUp signup = ScriptableObject.CreateInstance<GA_SignUp> ();
signup.maxSize = new Vector2(640, 600);
signup.minSize = new Vector2(640, 600);
signup.titleContent = new GUIContent ("GameAnalytics - Sign up for FREE");
signup.ShowUtility ();
signup.Opened();
signup.SwitchToGuideStep();
}
[MenuItem ("Window/GameAnalytics/Create GameAnalytics Object", false, 200)]
static void AddGASystemTracker ()
{
if (Object.FindObjectOfType (typeof(GameAnalytics)) == null)
{
GameObject go = PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath(GameAnalytics.WhereIs("GameAnalytics.prefab", "Prefab"), typeof(GameObject))) as GameObject;
go.name = "GameAnalytics";
Selection.activeObject = go;
Undo.RegisterCreatedObjectUndo(go, "Created GameAnalytics Object");
}
else
{
Debug.LogWarning ("A GameAnalytics object already exists in this scene - you should never have more than one per scene!");
}
}
[MenuItem ("Window/GameAnalytics/PlayMaker/Toggle Scripts", false, 400)]
static void TogglePlayMaker ()
{
bool enabled = false;
bool fail = false;
string searchText = "#if false";
string replaceText = "#if true";
string[] _files = new string[] {
"GAInitialize.cs",
"GetABTestingId.cs",
"GetABTestingVariantId.cs",
"GetRemoteConfigsValueAsString.cs",
"IsRemoteConfigsReady.cs",
"SendAdEvent.cs",
"SendBusinessEvent.cs",
"SendDesignEvent.cs",
"SendErrorEvent.cs",
"SendProgressionEvent.cs",
"SendResourceEvent.cs",
"SetCustomDimension.cs",
"SendProgressionEventActionEditor.cs",
"SendResourceEventActionEditor.cs"
};
foreach(string _file in _files)
{
try {
enabled = ReplaceInFile (GameAnalytics.WhereIs(_file, "Script"), searchText, replaceText);
} catch {
Debug.Log("Failed to toggle "+_file);
fail = true;
}
}
AssetDatabase.Refresh();
if (fail)
{
PlayMakerPresenceCheck.ResetPrefs();
Debug.Log("Failed to toggle PlayMaker Scripts.");
}else if (enabled)
{
Debug.Log("Enabled PlayMaker Scripts.");
}else
{
PlayMakerPresenceCheck.ResetPrefs();
Debug.Log("Disabled PlayMaker Scripts.");
}
}
public static bool ReplaceInFile (string filePath, string searchText, string replaceText)
{
bool enabled = false;
StreamReader reader = new StreamReader (filePath);
string content = reader.ReadToEnd ();
reader.Close ();
if (content.StartsWith(searchText))
{
enabled = true;
content = Regex.Replace (content, searchText, replaceText);
}
else
{
enabled = false;
content = Regex.Replace (content, replaceText, searchText);
}
StreamWriter writer = new StreamWriter (filePath);
writer.Write (content);
writer.Close ();
return enabled;
}
}
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 406a6696e05cc447c8d6a01396d21b90
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,287 @@
using UnityEditor.Callbacks;
using UnityEditor;
using System.IO;
using System;
using System.Linq;
using System.Collections.Generic;
namespace GameAnalyticsSDK.Editor
{
#if UNITY_2018_1_OR_NEWER
public class GA_PostprocessBuild : UnityEditor.Build.IPreprocessBuildWithReport
#else
public class GA_PostprocessBuild
#endif
{
private static string gameanalytics_mopub = "gameanalytics_mopub_enabled";
private static string gameanalytics_fyber = "gameanalytics_fyber_enabled";
private static string gameanalytics_ironsource = "gameanalytics_ironsource_enabled";
private static string gameanalytics_topon = "gameanalytics_topon_enabled";
private static string gameanalytics_max = "gameanalytics_max_enabled";
private static string gameanalytics_aequus = "gameanalytics_aequus_enabled";
private static string gameanalytics_hyperbid = "gameanalytics_hyperbid_enabled";
private static string gameanalytics_admob = "gameanalytics_admob_enabled";
#if UNITY_2018_1_OR_NEWER
public int callbackOrder
{
get { return 0; }
}
public void OnPreprocessBuild(UnityEditor.Build.Reporting.BuildReport report)
{
Update3rdPartyIntegrations();
}
#endif
[DidReloadScripts]
private static void OnScriptsReloaded()
{
Update3rdPartyIntegrations();
}
private static void Update3rdPartyIntegrations()
{
UpdateMoPub();
UpdateFyber();
UpdateIronSource();
UpdateTopOn();
UpdateMax();
UpdateAequus();
UpdateHyperBid();
UpdateAdMob();
}
private static void UpdateDefines(string entry, bool enabled, BuildTargetGroup[] groups)
{
foreach (var group in groups)
{
var defines = new List<string>(PlayerSettings.GetScriptingDefineSymbolsForGroup(group).Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
var edited = false;
if (enabled && !defines.Contains(entry))
{
defines.Add(entry);
edited = true;
}
else if (!enabled && defines.Contains(entry))
{
defines.Remove(entry);
edited = true;
}
if (edited) {
PlayerSettings.SetScriptingDefineSymbolsForGroup(group, string.Join(";", defines.ToArray()));
}
}
}
#region 3rd Party Lib Detection
/// <summary>
/// Sets the scripting define symbol `gameanalytics_mopub_enabled` to true if MoPub classes are detected within the Unity project
/// </summary>
private static void UpdateMoPub()
{
var mopubTypes = new string[] { "MoPubBase", "MoPubManager" };
if (TypeExists(mopubTypes))
{
UpdateDefines(gameanalytics_mopub, true, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
else
{
UpdateDefines(gameanalytics_mopub, false, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
}
/// <summary>
/// Sets the scripting define symbol `gameanalytics_fyber_enabled` to true if Fyber classes are detected within the Unity project
/// </summary>
private static void UpdateFyber()
{
var fyberTypes = new string[] { "Fyber.Interstitial", "Fyber.Banner", "Fyber.Rewarded" };
if (TypeExists(fyberTypes))
{
UpdateDefines(gameanalytics_fyber, true, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
else
{
UpdateDefines(gameanalytics_fyber, false, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
}
/// <summary>
/// Sets the scripting define symbol `gameanalytics_ironsource_enabled` to true if IronSource classes are detected within the Unity project
/// </summary>
private static void UpdateIronSource()
{
var ironSourceTypes = new string[] { "IronSourceEvents", "IronSource" };
if (TypeExists(ironSourceTypes))
{
UpdateDefines(gameanalytics_ironsource, true, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
else
{
UpdateDefines(gameanalytics_ironsource, false, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
}
/// <summary>
/// Sets the scripting define symbol `gameanalytics_topon_enabled` to true if TopOn classes are detected within the Unity project
/// </summary>
private static void UpdateTopOn()
{
var topOnTypes = new string[] { "AnyThinkAds.Api.ATBannerAd", "AnyThinkAds.Api.ATInterstitialAd", "AnyThinkAds.Api.ATRewardedVideo", "AnyThinkAds.Api.ATNativeAd" };
if (TypeExists(topOnTypes))
{
UpdateDefines(gameanalytics_topon, true, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
else
{
UpdateDefines(gameanalytics_topon, false, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
}
/// <summary>
/// Sets the scripting define symbol `gameanalytics_max_enabled` to true if Max classes are detected within the Unity project
/// </summary>
private static void UpdateMax()
{
var maxTypes = new string[] { "MaxSdkCallbacks", "MaxSdk", "MaxSdkBase.AdInfo" };
if (TypeExists(maxTypes))
{
UpdateDefines(gameanalytics_max, true, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
else
{
UpdateDefines(gameanalytics_max, false, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
}
/// <summary>
/// Sets the scripting define symbol `gameanalytics_aequus_enabled` to true if Aequus classes are detected within the Unity project
/// </summary>
private static void UpdateAequus()
{
var aequusTypes = new string[] { "Mobi.Aequus.Sdk.Aequus", "Mobi.Aequus.Sdk.AequusILRDListener", "Mobi.Aequus.Sdk.ImpressionData" };
if (TypeExists(aequusTypes))
{
UpdateDefines(gameanalytics_aequus, true, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
else
{
UpdateDefines(gameanalytics_aequus, false, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
}
/// <summary>
/// Sets the scripting define symbol `gameanalytics_hyperbid_enabled` to true if HyperBid classes are detected within the Unity project
/// </summary>
private static void UpdateHyperBid()
{
var topOnTypes = new string[] { "HyperBid.Api.HBBannerAd", "HyperBid.Api.HBInterstitialAd", "HyperBid.Api.HBRewardedVideo", "HyperBid.Api.HBNativeAd" };
if (TypeExists(topOnTypes))
{
UpdateDefines(gameanalytics_hyperbid, true, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
else
{
UpdateDefines(gameanalytics_hyperbid, false, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
}
/// <summary>
/// Sets the scripting define symbol `gameanalytics_admob_enabled` to true if AdMob classes are detected within the Unity project
/// </summary>
private static void UpdateAdMob()
{
var topOnTypes = new string[] { "GoogleMobileAds.Api.AdRequest", "GoogleMobileAds.Api.BannerView", "GoogleMobileAds.Api.InterstitialAd", "GoogleMobileAds.Api.RewardedAd", "GoogleMobileAds.Api.RewardedInterstitialAd" };
if (TypeExists(topOnTypes))
{
UpdateDefines(gameanalytics_admob, true, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
else
{
UpdateDefines(gameanalytics_admob, false, new BuildTargetGroup[] { BuildTargetGroup.iOS, BuildTargetGroup.Android });
}
}
private static bool TypeExists(params string[] types)
{
if (types == null || types.Length == 0)
return false;
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assembly in assemblies)
{
if (types.Any(type => assembly.GetType(type) != null))
return true;
}
return false;
}
#endregion
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string path)
{
if (buildTarget == BuildTarget.iOS || buildTarget == BuildTarget.tvOS)
{
#if UNITY_IOS || UNITY_TVOS
string projPath = UnityEditor.iOS.Xcode.PBXProject.GetPBXProjectPath(path);
UnityEditor.iOS.Xcode.PBXProject proj = new UnityEditor.iOS.Xcode.PBXProject();
proj.ReadFromString(File.ReadAllText(projPath));
#if UNITY_2019_3_OR_NEWER
string target = proj.GetUnityMainTargetGuid();
#else
string targetName = UnityEditor.iOS.Xcode.PBXProject.GetUnityTargetName();
string target = proj.TargetGuidByName(targetName);
#endif
proj.AddFileToBuild(target, proj.AddFile("usr/lib/libsqlite3.dylib", "Frameworks/libsqlite3.dylib", UnityEditor.iOS.Xcode.PBXSourceTree.Sdk));
proj.AddFileToBuild(target, proj.AddFile("usr/lib/libz.dylib", "Frameworks/libz.dylib", UnityEditor.iOS.Xcode.PBXSourceTree.Sdk));
proj.AddFrameworkToProject(target, "AdSupport.framework", false);
proj.AddFrameworkToProject(target, "AppTrackingTransparency.framework", true);
//proj.SetBuildProperty(target, "ENABLE_BITCODE", "YES");
#if gameanalytics_topon_enabled
string toponSubPath = "Libraries/GameAnalytics/Plugins/iOS/GameAnalyticsTopOnHelper.m";
string[] topOnGuids = AssetDatabase.FindAssets("GameAnalyticsTopOnHelper", null);
if (topOnGuids.Length > 0)
{
string[] p = AssetDatabase.GUIDToAssetPath(topOnGuids[0]).Split(new char[] { '/' }, 2);
if(p.Length > 1)
{
toponSubPath = "Libraries/" + p[1];
}
}
string toponHelperFilePath = Path.Combine(path, toponSubPath);
string topOncontents = File.ReadAllText(toponHelperFilePath);
topOncontents = topOncontents.Replace("#if gameanalytics_topon_enabled", "").Replace("#endif", "");
File.WriteAllText(toponHelperFilePath, topOncontents);
#endif
#if gameanalytics_hyperbid_enabled
string hyperbidSubPath = "Libraries/GameAnalytics/Plugins/iOS/GameAnalyticsHyperBidHelper.m";
string[] hyperBidGuids = AssetDatabase.FindAssets("GameAnalyticsHyperBidHelper", null);
if (hyperBidGuids.Length > 0)
{
string[] p = AssetDatabase.GUIDToAssetPath(hyperBidGuids[0]).Split(new char[] { '/' }, 2);
if(p.Length > 1)
{
hyperbidSubPath = "Libraries/" + p[1];
}
}
string hyperbidHelperFilePath = Path.Combine(path, hyperbidSubPath);
string hyperbidContents = File.ReadAllText(hyperbidHelperFilePath);
hyperbidContents = hyperbidContents.Replace("#if gameanalytics_hyperbid_enabled", "").Replace("#endif", "");
File.WriteAllText(hyperbidHelperFilePath, hyperbidContents);
#endif
File.WriteAllText(projPath, proj.WriteToString());
#endif
}
}
}
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 19da6243a1a7449a585f5f945b7a1f94
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 771d45ab6687246f4ac00b5bf537e520
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8badeee0f8f58488c94706222ee1e6fb
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,113 @@
using UnityEngine;
using System.Collections;
using UnityEditor;
using System.Collections.Generic;
using GameAnalyticsSDK.Setup;
namespace GameAnalyticsSDK.Editor
{
public class GA_UpdateWindow : EditorWindow
{
private GUIContent _close = new GUIContent("Skip", "Skip this version.");
private GUIContent _download = new GUIContent("Download Page", "Open the GameAnalytics download support page.");
//private GUIContent _assetStore = new GUIContent("AssetStore", "Open Unity Asset Store page in a browser window.");
private Vector2 _scrollPos;
void OnGUI ()
{
GUILayout.BeginHorizontal();
GUILayout.Label(GameAnalytics.SettingsGA.Logo);
GUILayout.BeginVertical();
GUILayout.Label("A new version of the GameAnalytics Unity SDK is available");
EditorGUILayout.Space();
GUILayout.Label("Currently installed version: " + GameAnalyticsSDK.Setup.Settings.VERSION);
GUILayout.Label("Latest version: " + GameAnalytics.SettingsGA.NewVersion);
EditorGUILayout.Space();
GUILayout.Label("Changes:");
EditorGUILayout.Space();
//EditorGUILayout.BeginVertical();
_scrollPos = EditorGUILayout.BeginScrollView(_scrollPos, GUILayout.Width (320), GUILayout.Height (160));
GUILayout.Label(new GUIContent(GameAnalytics.SettingsGA.Changes), EditorStyles.wordWrappedLabel);
EditorGUILayout.EndScrollView();
//EditorGUILayout.EndVertical();
EditorGUILayout.Space();
GUILayout.Label("You can download the latest version from the GameAnalytics download support page.", EditorStyles.wordWrappedMiniLabel, GUILayout.MaxWidth(320));
EditorGUILayout.Space();
GUILayout.BeginHorizontal();
/*if (GUILayout.Button(_assetStore, GUILayout.MaxWidth(115)))
{
Application.OpenURL("https://www.assetstore.unity3d.com/#/content/6755");
}*/
if (GUILayout.Button(_download, GUILayout.MaxWidth(115)))
{
Application.OpenURL("http://download.gameanalytics.com/unity/GA_SDK_UNITY.unitypackage");
}
if (GUILayout.Button(_close, GUILayout.MaxWidth(72)))
{
EditorPrefs.SetString("ga_skip_version"+"-"+Application.dataPath, GameAnalytics.SettingsGA.NewVersion);
Close();
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
GUILayout.EndHorizontal();
}
public static void SetNewVersion (string newVersion)
{
if (!string.IsNullOrEmpty(newVersion))
{
GameAnalytics.SettingsGA.NewVersion = newVersion;
}
}
public static string GetNewVersion ()
{
return GameAnalytics.SettingsGA.NewVersion;
}
public static void SetChanges (string changes)
{
if (!string.IsNullOrEmpty(changes))
{
GameAnalytics.SettingsGA.Changes = changes;
}
}
public static string UpdateStatus (string currentVersion)
{
try {
int newV = int.Parse(GameAnalytics.SettingsGA.NewVersion.Replace(".",""));
int oldV = int.Parse(currentVersion.Replace(".",""));
if (newV > oldV)
return "New update";
else
return "";
} catch {
return "";
}
}
}
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b025a92f1fe974e5faf57688a659013a
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,66 @@
/// <summary>
/// The inspector for the GA prefab.
/// </summary>
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
using System.Reflection.Emit;
using System.Reflection;
using System;
using GameAnalyticsSDK.Setup;
namespace GameAnalyticsSDK.Editor
{
[CustomEditor(typeof(GameAnalytics))]
public class GameAnalyticsInspector : UnityEditor.Editor
{
private GUIContent _documentationLink = new GUIContent("Help", "Opens the GameAnalytics Unity SDK documentation page in your browser.");
//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).");
override public void OnInspectorGUI ()
{
GameAnalytics ga = target as GameAnalytics;
EditorGUI.indentLevel = 1;
EditorGUILayout.Space();
GUILayout.BeginHorizontal();
GUILayout.Label("GameAnalytics Object",EditorStyles.largeLabel);
if (GUILayout.Button(_documentationLink, GUILayout.MaxWidth(60)))
{
Application.OpenURL("http://support.gameanalytics.com/");
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
GUILayout.Label("Basic component for initializing GameAnalytics.",EditorStyles.miniLabel);
GUILayout.EndHorizontal();
EditorGUILayout.Space();
if (GUI.changed)
{
EditorUtility.SetDirty(ga);
}
}
private MessageType ConvertMessageType(GameAnalyticsSDK.Setup.Settings.MessageTypes msgType)
{
switch (msgType)
{
case GameAnalyticsSDK.Setup.Settings.MessageTypes.Error:
return MessageType.Error;
case GameAnalyticsSDK.Setup.Settings.MessageTypes.Info:
return MessageType.Info;
case GameAnalyticsSDK.Setup.Settings.MessageTypes.Warning:
return MessageType.Warning;
default:
return MessageType.None;
}
}
}
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ef714624881664191ade6c6dda4bef44
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 19408680da89f4453b644599992eed64
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,81 @@
using UnityEngine;
using UnityEditor;
using System;
public class PlayMakerPresenceCheck : AssetPostprocessor{
static string PlayMakerTypeCheck = "HutongGames.PlayMaker.Actions.ActivateGameObject, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null";
static string PlayMakerBridgeTypeCheck = "HutongGames.PlayMaker.Actions.SendDesignEvent, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null";
static string IgnorePlayMakerBridgeKey = "IgnorePlayMakerBridge";
static string PlayMakerBridgeEnabledKey = "PlayMakerBridgeEnabled";
static bool _debug = false;
public static void ResetPrefs()
{
EditorPrefs.DeleteKey(IgnorePlayMakerBridgeKey+"-"+Application.dataPath);
EditorPrefs.DeleteKey(PlayMakerBridgeEnabledKey+"-"+Application.dataPath);
}
static void OnPostprocessAllAssets ( string[] importedAssets,string[] deletedAssets,string[] movedAssets,string[] movedFromAssetPaths)
{
//check here if we have access to a PlayMaker class, if we do, then we can alert the user.
bool _playmakerDetected = System.Type.GetType(PlayMakerTypeCheck) != null;
// check here if we have access to the PlayMaker Bridge Class.
bool _bridgeEnabled = System.Type.GetType(PlayMakerBridgeTypeCheck) !=null;
if (_debug)
{
Debug.Log("PlayMaker detected : "+_playmakerDetected+ " , Bridge enabled="+_bridgeEnabled);
}
if (_playmakerDetected)
{
if (! _bridgeEnabled)
{
if (EditorPrefs.GetBool(IgnorePlayMakerBridgeKey+"-"+Application.dataPath))
{
if (_debug)
{
Debug.Log("Ignore detection alert");
}
return;
}
if (EditorPrefs.GetBool(PlayMakerBridgeEnabledKey+"-"+Application.dataPath) )
{
if (_debug)
{
Debug.Log("PlayMaker found but bridge not enabled, tho we actually enabled it, so we bail");
}
return;
}
if (_debug)
{
Debug.Log("PlayMaker found but bridge not enabled");
}
if (EditorUtility.DisplayDialog("GameAnalytics : PlayMaker Detected","Do you want to enable PlayMaker Actions for GameAnalytics?","Yes","No"))
{
EditorPrefs.SetBool(PlayMakerBridgeEnabledKey+"-"+Application.dataPath,true);
EditorApplication.ExecuteMenuItem("Window/GameAnalytics/PlayMaker/Toggle Scripts");
}else{
EditorPrefs.SetBool(IgnorePlayMakerBridgeKey+"-"+Application.dataPath,true);
Debug.Log("To enable PlayMaker support for GameAnalytics manualy, simply go to the menu: 'Window/GameAnalytics/PlayMaker/Toggle Scripts'");
}
}
}
}
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 59b631ff074a747748991261a24f2a0d
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,58 @@
#if false
using HutongGames.PlayMaker.Actions;
using HutongGames.PlayMakerEditor;
using UnityEditor;
using UnityEngine;
using GameAnalyticsSDK;
namespace HutongGames.PlayMakerEditor
{
[CustomActionEditor(typeof (SendProgressionEvent))]
public class SendProgressionEventActionEditor : CustomActionEditor
{
public override bool OnGUI()
{
bool edited = false;
SendProgressionEvent _target = (SendProgressionEvent)target;
if (_target.ProgressionStatusAsString == null)
{
_target.ProgressionStatusAsString = new HutongGames.PlayMaker.FsmString(){ UseVariable=false };
}
if (_target.ProgressionStatusAsString.UseVariable)
{
EditField("ProgressionStatusAsString");
}
else
{
GUILayout.BeginHorizontal();
_target.ProgressionStatus = (GAProgressionStatus)EditorGUILayout.EnumPopup("Progression Status", _target.ProgressionStatus);
if (PlayMakerEditor.FsmEditorGUILayout.MiniButtonPadded(PlayMakerEditor.FsmEditorContent.VariableButton))
{
_target.ProgressionStatusAsString.UseVariable = true;
}
GUILayout.EndHorizontal();
}
EditField("Progression01");
if (_target.Progression01.Value != "" || !_target.Progression01.IsNone)
EditField("Progression02");
if (_target.Progression02.Value != "" || !_target.Progression02.IsNone)
EditField("Progression03");
EditField("Score");
return GUI.changed || edited;
}
}
}
#endif

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0d4cc2e81a2a44fcbba82d0af4fe74fc
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,53 @@
#if false
using HutongGames.PlayMaker.Actions;
using HutongGames.PlayMakerEditor;
using UnityEditor;
using UnityEngine;
using GameAnalyticsSDK;
namespace HutongGames.PlayMakerEditor
{
[CustomActionEditor(typeof (SendResourceEvent))]
public class SendResourceEventActionEditor : CustomActionEditor
{
public override bool OnGUI()
{
bool edited = false;
SendResourceEvent _target = (SendResourceEvent)target;
if (_target.ResourceFlowTypeAsString == null)
{
_target.ResourceFlowTypeAsString = new HutongGames.PlayMaker.FsmString(){ UseVariable=false };
}
if (_target.ResourceFlowTypeAsString.UseVariable)
{
EditField("ResourceFlowTypeAsString");
}
else
{
GUILayout.BeginHorizontal();
_target.ResourceFlowType = (GAResourceFlowType)EditorGUILayout.EnumPopup("Resource Flow Type", _target.ResourceFlowType);
if (PlayMakerEditor.FsmEditorGUILayout.MiniButtonPadded(PlayMakerEditor.FsmEditorContent.VariableButton))
{
_target.ResourceFlowTypeAsString.UseVariable = true;
}
GUILayout.EndHorizontal();
}
EditField("ResourceCurrency");
EditField("Amount");
EditField("ItemType");
EditField("ItemID");
return GUI.changed || edited;
}
}
}
#endif

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f50974faf2211494d9c937a90c66fc94
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,4 @@
fileFormatVersion: 2
guid: 8774c230da39f2f41a5ca6ca2eb30aaf
DefaultImporter:
userData:

View File

@ -0,0 +1,5 @@
fileFormatVersion: 2
guid: 0815a0dd77f0048c28eb65386cbbaa8f
folderAsset: yes
DefaultImporter:
userData:

View File

@ -0,0 +1,5 @@
fileFormatVersion: 2
guid: 33f691f424cec47a3a0f33815f922bd2
folderAsset: yes
DefaultImporter:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: 2a410468f562749b09418cdaaa03e6c3
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 256
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: 0a098930e63804755878cae3eada3bd7
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 256
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: 85a626f1668244d30a4e9f616991a793
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 32
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: a9ac7103fc40b4e00923bf8c2cb5d30f
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 64
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: fe7e2ecc9b2fe447bafe90f6395d4709
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 32
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: 1b4dd779aadd54ac88856975af0d3c0a
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 32
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: 2ba470b4dffd848c6b267c34770cc63e
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 64
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: f8ea67e311b0c4b2ea05718e90fd3b5b
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 32
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: 810bbb19deed24f3cb7b854f9bafde26
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 32
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: f49ef75333ff247cfb5dad4dab0d4dac
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 64
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -0,0 +1,47 @@
fileFormatVersion: 2
guid: 98df8f9c5678a4e5d964caa1244e8958
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 64
textureSettings:
filterMode: 1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:

View File

@ -0,0 +1,5 @@
fileFormatVersion: 2
guid: 97b79fc4d9d2243ed8192a5f84b29f1f
folderAsset: yes
DefaultImporter:
userData:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 597ee60d9a475c840bd1048278120a0c
folderAsset: yes
timeCreated: 1537519465
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 316a5978eed5b400c8dd756e6eb47fdc
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 2399d067eb0414c1788edd794d77e8c1
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 265f68ba80fb7490cb68cadbea3c3cdd
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 63c7fbb74d1694323b632b9b4cd7d1d1
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,48 @@
fileFormatVersion: 2
guid: e185dadd9acc8487d8d4bb2936a243cc
timeCreated: 1572358580
licenseType: Pro
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
DefaultValueInitialized: true
Linux:
enabled: 1
settings: {}
Linux64:
enabled: 1
settings: {}
LinuxUniversal:
enabled: 1
settings: {}
OSXIntel:
enabled: 1
settings: {}
OSXIntel64:
enabled: 1
settings: {}
OSXUniversal:
enabled: 1
settings: {}
Win:
enabled: 1
settings: {}
Win64:
enabled: 1
settings: {}
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: f10ba24b63b2c46459091962994de8c1
folderAsset: yes
timeCreated: 1460635935
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,29 @@
fileFormatVersion: 2
guid: 0683b20eb25df464b8f46d93396af7f6
timeCreated: 1565687811
licenseType: Pro
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Any:
enabled: 0
settings: {}
Editor:
enabled: 0
settings:
DefaultValueInitialized: true
Linux:
enabled: 1
settings: {}
Linux64:
enabled: 1
settings: {}
LinuxUniversal:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6fec94307c4a3455aa36a1c8ce4624f2
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 37976cfe0530549b39d0f7e0271a4255
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,4 @@
fileFormatVersion: 2
guid: 407ffca6c655a443ba2a0b82d2a43bdc
DefaultImporter:
userData:

View File

@ -0,0 +1,27 @@
#if false
using System;
using UnityEngine;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Initialize GameAnalytics SDK")]
public class GAInitialize : FsmStateAction
{
public override void Reset()
{
}
public override void OnEnter()
{
GameAnalytics.Initialize();
Finish();
}
}
}
#endif

View File

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 9370f17c653e94c29948b6883597f4f3
timeCreated: 1537177094
licenseType: Pro
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,34 @@
#if false
using System;
using UnityEngine;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Get AB testing id")]
public class GetABTestingId : FsmStateAction
{
[ActionSection("Store Result")]
[UIHint(UIHint.Variable)]
[RequiredField]
[Tooltip("Store the result of the method call.")]
public FsmString storeResult;
public override void Reset()
{
}
public override void OnEnter()
{
storeResult.Value = GameAnalytics.GetABTestingId();
Finish();
}
}
}
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 454d889a3c60a494aa071812450cf1e2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,34 @@
#if false
using System;
using UnityEngine;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Get AB testing variant id")]
public class GetABTestingVariantId : FsmStateAction
{
[ActionSection("Store Result")]
[UIHint(UIHint.Variable)]
[RequiredField]
[Tooltip("Store the result of the method call.")]
public FsmString storeResult;
public override void Reset()
{
}
public override void OnEnter()
{
storeResult.Value = GameAnalytics.GetABTestingVariantId();
Finish();
}
}
}
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 839df1d9532264d9c9365e5fe1469267
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,48 @@
#if false
using System;
using UnityEngine;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Get remote config value as string")]
public class GetRemoteConfigsValueAsString : FsmStateAction
{
[Tooltip("The remote config key")]
[RequiredField]
public FsmString Key;
[Tooltip("The remote config default value if the key is present in remote configs")]
public FsmString DefaultValue;
[ActionSection("Store Result")]
[UIHint(UIHint.Variable)]
[RequiredField]
[Tooltip("Store the result of the method call.")]
public FsmString storeResult;
public override void Reset()
{
}
public override void OnEnter()
{
if(DefaultValue.IsNone)
{
storeResult.Value = GameAnalytics.GetRemoteConfigsValueAsString(Key.Value);
}
else
{
storeResult.Value = GameAnalytics.GetRemoteConfigsValueAsString(Key.Value, DefaultValue.Value);
}
Finish();
}
}
}
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 385dfd45fbeae4407b26dab4174751a1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,34 @@
#if false
using System;
using UnityEngine;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Is remote configs ready")]
public class IsRemoteConfigsReady : FsmStateAction
{
[ActionSection("Store Result")]
[UIHint(UIHint.Variable)]
[RequiredField]
[Tooltip("Store the result of the method call.")]
public FsmBool storeResult;
public override void Reset()
{
}
public override void OnEnter()
{
storeResult.Value = GameAnalytics.IsRemoteConfigsReady();
Finish();
}
}
}
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b4b02fb883d7e45cc9d445c8eca67419
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,65 @@
#if false
using System;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Sends an ad event message to the GameAnalytics server")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1164")]
public class SendAdEvent : FsmStateAction
{
[Tooltip("The ad action")]
public GAAdAction AdAction;
[Tooltip("The ad type")]
public GAAdType AdType;
[RequiredField]
[Tooltip("Ad SDK name")]
public FsmString AdSdkName;
[RequiredField]
[Tooltip("Ad placement")]
public FsmString AdPlacement;
[RequiredField]
[Tooltip("Ad error reason")]
public GAAdError AdErrorReason;
[Tooltip("Ad video duration watched")]
public FsmInt Duration;
public override void Reset()
{
AdAction = GAAdAction.Show;
AdType = GAAdType.Interstitial;
AdSdkName = new FsmString() { UseVariable = false };
AdPlacement = new FsmString() { UseVariable = false };
AdErrorReason = GAAdError.Undefined;
Duration = new FsmInt() { UseVariable = false };
}
public override void OnEnter()
{
if(!Duration.IsNone)
{
GA_Ads.NewEvent(AdAction, AdType, AdSdkName.Value, AdPlacement.Value, Duration.Value, null, false);
}
else if (AdErrorReason != GAAdError.Undefined)
{
GA_Ads.NewEvent(AdAction, AdType, AdSdkName.Value, AdPlacement.Value, AdErrorReason, null, false);
}
else
{
GA_Ads.NewEvent(AdAction, AdType, AdSdkName.Value, AdPlacement.Value, null, false);
}
Finish();
}
}
}
#endif

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 08aa36c620a9340648d45b3707830e81
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,194 @@
#if false
using System;
using GameAnalyticsSDK;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Sends a business event message to the GameAnalytics server with no validation")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1163")]
public class SendBusinessEvent : FsmStateAction
{
[RequiredField]
[Tooltip("Abbreviation of the currency used for the transaction. F.x. USD (U.S. Dollars)")]
public FsmString Currency;
[RequiredField]
[Tooltip("Amount of real currency, in cents")]
public FsmInt Amount;
[RequiredField]
[Tooltip("Type of IAP item purchased (e.g. Coins)")]
public FsmString ItemType;
[RequiredField]
[Tooltip("Specific item purchased (e.g. CoinPack001)")]
public FsmString ItemID;
[RequiredField]
[Tooltip("Cart Type")]
public FsmString CartType;
public override void Reset()
{
Currency = new FsmString() { UseVariable = false };
Amount = new FsmInt() { UseVariable = false };
ItemType = new FsmString() { UseVariable = false };
ItemID = new FsmString() { UseVariable = false };
CartType = new FsmString() { UseVariable = false };
}
public override void OnEnter()
{
GameAnalytics.NewBusinessEvent(Currency.Value, Amount.Value, ItemType.Value, ItemID.Value, CartType.Value);
Finish();
}
}
#if UNITY_IOS || UNITY_TVOS
[ActionCategory("GameAnalytics")]
[Tooltip("Sends an iOS business event message to the GameAnalytics server")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1163")]
public class SendBusinessEventIOS : FsmStateAction
{
[RequiredField]
[Tooltip("Abbreviation of the currency used for the transaction. F.x. USD (U.S. Dollars)")]
public FsmString Currency;
[RequiredField]
[Tooltip("Amount of real currency, in cents")]
public FsmInt Amount;
[RequiredField]
[Tooltip("Type of IAP item purchased (e.g. Coins)")]
public FsmString ItemType;
[RequiredField]
[Tooltip("Specific item purchased (e.g. CoinPack001)")]
public FsmString ItemID;
[RequiredField]
[Tooltip("Cart Type")]
public FsmString CartType;
[Tooltip("App Store Receipt, used for purchase validation")]
public FsmString Receipt;
public override void Reset()
{
Currency = new FsmString() { UseVariable = false };
Amount = new FsmInt() { UseVariable = false };
ItemType = new FsmString() { UseVariable = false };
ItemID = new FsmString() { UseVariable = false };
CartType = new FsmString() { UseVariable = false };
Receipt = new FsmString() { UseVariable = false };
}
public override void OnEnter()
{
GameAnalytics.NewBusinessEventIOS(Currency.Value, Amount.Value, ItemType.Value, ItemID.Value, CartType.Value, Receipt.Value);
Finish();
}
}
[ActionCategory("GameAnalytics")]
[Tooltip("Sends an iOS business with auto fetch receipt event message to the GameAnalytics server")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1163")]
public class SendBusinessEventIOSAutoFetchReceipt : FsmStateAction
{
[RequiredField]
[Tooltip("Abbreviation of the currency used for the transaction. F.x. USD (U.S. Dollars)")]
public FsmString Currency;
[RequiredField]
[Tooltip("Amount of real currency, in cents")]
public FsmInt Amount;
[RequiredField]
[Tooltip("Type of IAP item purchased (e.g. Coins)")]
public FsmString ItemType;
[RequiredField]
[Tooltip("Specific item purchased (e.g. CoinPack001)")]
public FsmString ItemID;
[RequiredField]
[Tooltip("Cart Type")]
public FsmString CartType;
public override void Reset()
{
Currency = new FsmString() { UseVariable = false };
Amount = new FsmInt() { UseVariable = false };
ItemType = new FsmString() { UseVariable = false };
ItemID = new FsmString() { UseVariable = false };
CartType = new FsmString() { UseVariable = false };
}
public override void OnEnter()
{
GameAnalytics.NewBusinessEventIOSAutoFetchReceipt(Currency.Value, Amount.Value, ItemType.Value, ItemID.Value, CartType.Value);
Finish();
}
}
#endif
#if UNITY_ANDROID
[ActionCategory("GameAnalytics")]
[Tooltip("Sends a Google Play business event message to the GameAnalytics server")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1163")]
public class SendBusinessEventGooglePlay : FsmStateAction
{
[RequiredField]
[Tooltip("Abbreviation of the currency used for the transaction. F.x. USD (U.S. Dollars)")]
public FsmString Currency;
[RequiredField]
[Tooltip("Amount of real currency, in cents")]
public FsmInt Amount;
[RequiredField]
[Tooltip("Type of IAP item purchased (e.g. Coins)")]
public FsmString ItemType;
[RequiredField]
[Tooltip("Specific item purchased (e.g. CoinPack001)")]
public FsmString ItemID;
[RequiredField]
[Tooltip("Cart Type")]
public FsmString CartType;
[Tooltip("App Store Receipt, used for purchase validation")]
public FsmString Receipt;
[RequiredField]
[Tooltip("Signature for In-App purchase, used for purchase validation")]
public FsmString Signature;
public override void Reset()
{
Currency = new FsmString() { UseVariable = false };
Amount = new FsmInt() { UseVariable = false };
ItemType = new FsmString() { UseVariable = false };
ItemID = new FsmString() { UseVariable = false };
CartType = new FsmString() { UseVariable = false };
Receipt = new FsmString() { UseVariable = false };
Signature = new FsmString() { UseVariable = false };
}
public override void OnEnter()
{
GameAnalytics.NewBusinessEventGooglePlay(Currency.Value, Amount.Value, ItemType.Value, ItemID.Value, CartType.Value, Receipt.Value, Signature.Value);
Finish();
}
}
#endif
}
#endif

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1c4b16e44b6ce4aa3829724d9730e8b6
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,39 @@
#if false
using System;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Sends a design event message to the GameAnalytics server")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1164")]
public class SendDesignEvent : FsmStateAction
{
[RequiredField]
[Tooltip("The event ID")]
public FsmString EventID;
[Tooltip("The event value")]
public FsmFloat EventValue;
public override void Reset()
{
EventID = new FsmString() { UseVariable = false };
EventValue = new FsmFloat() { UseVariable = true };
}
public override void OnEnter()
{
if (!EventValue.IsNone)
GA_Design.NewEvent(EventID.Value, EventValue.Value, null, false);
else
GA_Design.NewEvent(EventID.Value, null, false);
Finish();
}
}
}
#endif

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 69088c40a9088448b931f5688693ff5d
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,37 @@
#if false
using System;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Sends a error event message to the GameAnalytics server.")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1171")]
public class SendErrorEvent : FsmStateAction
{
[Tooltip("The severity of this event: critical, error, warning, info, debug")]
public GAErrorSeverity severityType ;
[Tooltip("The message")]
[RequiredField]
public FsmString Message;
public override void Reset()
{
severityType = GAErrorSeverity.Error;
Message = new FsmString() { UseVariable = false };
}
public override void OnEnter()
{
GA_Error.NewEvent(severityType, Message.Value, null, false);
Finish();
}
}
}
#endif

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 78ad7cbebadcf462498c3fb5f7e7f1d3
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,68 @@
#if false
using System;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Sends a progression event message to the GameAnalytics server")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1164")]
public class SendProgressionEvent : FsmStateAction
{
[Tooltip("The progression status as string: 'start', 'complete', 'fail' case insensitive, any other values are invalid")]
public FsmString ProgressionStatusAsString;
[Tooltip("The progression status")]
public GAProgressionStatus ProgressionStatus;
[RequiredField]
[Tooltip("Progression layer 1")]
public FsmString Progression01;
[Tooltip("Progression layer 2")]
public FsmString Progression02;
[Tooltip("Progression layer 3")]
public FsmString Progression03;
[Tooltip("The player's score")]
public FsmInt Score;
public override void Reset()
{
ProgressionStatus = GAProgressionStatus.Start;
Progression01 = new FsmString() { UseVariable = false };
Progression02 = new FsmString() { UseVariable = false };
Progression03 = new FsmString() { UseVariable = false };
Score = new FsmInt() { UseVariable = false };
}
public override void OnEnter()
{
if (!Score.IsNone)
{
if (!Progression03.IsNone && !Progression02.IsNone)
GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Progression02.Value, Progression03.Value, Score.Value, null, false);
else if (!Progression02.IsNone)
GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Progression02.Value, Score.Value, null, false);
else
GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Score.Value, null, false);
}
else
{
if (!Progression03.IsNone && !Progression02.IsNone)
GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Progression02.Value, Progression03.Value, null, false);
else if (!Progression02.IsNone)
GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, Progression02.Value, null, false);
else
GA_Progression.NewEvent(ProgressionStatus, Progression01.Value, null, false);
}
Finish();
}
}
}
#endif

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b86bf966f50b94d51b995b04fd531177
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,54 @@
#if false
using System;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory("GameAnalytics")]
[Tooltip("Sends a resource event message to the GameAnalytics server")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1164")]
public class SendResourceEvent : FsmStateAction
{
[Tooltip("The resource flow type as string: 'source', 'sink' case insensitive, any other values are invalid")]
public FsmString ResourceFlowTypeAsString;
[Tooltip("The resource flow type: add (source) or remove (sink) resource")]
public GAResourceFlowType ResourceFlowType;
[RequiredField]
[Tooltip("Type of virtual currency used (E.g. gold, lives)")]
public FsmString ResourceCurrency;
[RequiredField]
[Tooltip("Amount of virtual currency used/gained in this event")]
public FsmFloat Amount;
[RequiredField]
[Tooltip("Type of item purchased/used with virtual currency (E.g. boost, gameplay)")]
public FsmString ItemType;
[RequiredField]
[Tooltip("Specific item purchased/used with virtual currency (E.g. rainbowboost, gamestart)")]
public FsmString ItemID;
public override void Reset()
{
ResourceFlowType = GAResourceFlowType.Source;
ResourceCurrency = new FsmString() { UseVariable = false };
Amount = new FsmFloat() { UseVariable = false };
ItemType = new FsmString() { UseVariable = false };
ItemID = new FsmString() { UseVariable = false };
}
public override void OnEnter()
{
GA_Resource.NewEvent(ResourceFlowType, ResourceCurrency.Value, Amount.Value, ItemType.Value, ItemID.Value, null, false);
Finish();
}
}
}
#endif

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b0f8e458451f540a1b0dd6c6381858ec
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,56 @@
#if false
using System;
using UnityEngine;
using GameAnalyticsSDK;
using GameAnalyticsSDK.Events;
namespace HutongGames.PlayMaker.Actions
{
public enum CustomDimensionNumber
{
CustomDimension01 = 1,
CustomDimension02 = 2,
CustomDimension03 = 3
}
[ActionCategory("GameAnalytics")]
[Tooltip("Sets a Custom Dimension")]
[HelpUrl("https://hutonggames.fogbugz.com/default.asp?W1166")]
public class SetCustomDimension : FsmStateAction
{
[RequiredField]
[Tooltip("The Custom Dimension to set (1/2/3).")]
public CustomDimensionNumber CustomDimension;
[RequiredField]
[Tooltip("The Custom Dimension value.")]
public FsmString CustomDimensionValue;
public override void Reset()
{
CustomDimension = CustomDimensionNumber.CustomDimension01;
CustomDimensionValue = new FsmString() { UseVariable = false };
}
public override void OnEnter()
{
switch (CustomDimension)
{
case CustomDimensionNumber.CustomDimension01:
GA_Setup.SetCustomDimension01(CustomDimensionValue.Value);
break;
case CustomDimensionNumber.CustomDimension02:
GA_Setup.SetCustomDimension02(CustomDimensionValue.Value);
break;
case CustomDimensionNumber.CustomDimension03:
GA_Setup.SetCustomDimension03(CustomDimensionValue.Value);
break;
}
Finish();
}
}
}
#endif

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f199e60f747934effb1d8e3fce31d6df
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -0,0 +1,5 @@
fileFormatVersion: 2
guid: 336a9dcba70fd4d78891a30d09ef699d
folderAsset: yes
DefaultImporter:
userData:

View File

@ -0,0 +1,58 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &165288
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 465288}
- component: {fileID: 11465290}
- component: {fileID: 11465288}
m_Layer: 0
m_Name: GameAnalytics
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &465288
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 165288}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &11465290
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 165288}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: adefe18d2f40dd84c8666cc766d5de82, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &11465288
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 165288}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1488bee7925fe433fbddf989c50ad4ff, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@ -0,0 +1,4 @@
fileFormatVersion: 2
guid: a9d27d37bab3c447b8eb7a2a6756e952
NativeFormatImporter:
userData:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 3bf67f7f4b82ae14e904a5f1f77b3c2f
folderAsset: yes
timeCreated: 1473846375
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More