123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 |
-
- // Created by ZhuCong on 1/1/14.
- // Copyright 2014 Umeng.com . All rights reserved.
- using System;
- using UnityEngine;
- using System.Runtime.InteropServices;
- namespace Umeng
- {
-
- /// <summary>
- /// 友盟游戏统计
- /// </summary>
- public class GA : Analytics
- {
- public enum Gender
- {
- Unknown = 0,
- Male = 1,
- Female = 2
- }
- /// <summary>
- /// 设置玩家等级
- /// </summary>
- /// <param name="level">玩家等级</param>
- public static void SetUserLevel(int level)
- {
- #if UNITY_EDITOR
- //Debug.Log("SetUserLevel");
- #elif UNITY_IPHONE
- _SetUserLevel(level);
- #elif UNITY_ANDROID
- Agent.CallStatic("setPlayerLevel", level);
- #endif
-
- }
- /// <summary>
- /// 设置玩家等级
- /// </summary>
- /// <param name="level">玩家等级</param>
- [Obsolete("SetUserLevel(string level) 已弃用, 请使用 SetUserLevel(int level)")]
- public static void SetUserLevel(string level)
- {
- Debug.LogWarning("SetUserLevel(string level) 已弃用, 请使用 SetUserLevel(int level)");
- }
- /// <summary>
- /// 设置玩家属性
- /// </summary>
- /// <param name="userId">玩家Id</param>
- /// <param name="gender">性别</param>
- /// <param name="age">年龄</param>
- /// <param name="platform">来源</param>
- [System.Obsolete("SetUserInfo已弃用, 请使用ProfileSignIn")]
- public static void SetUserInfo(string userId, Gender gender, int age, string platform)
- {
- #if UNITY_EDITOR
- //Debug.Log("SetUserInfo");
- #elif UNITY_IPHONE
- _SetUserInfo(userId, (int)gender, age, platform);
- #elif UNITY_ANDROID
- Agent.CallStatic("setPlayerInfo",userId, age, (int)gender, platform);
- #endif
- }
-
- /// <summary>
- /// 玩家进入关卡
- /// </summary>
- /// <param name="level">关卡</param>
- public static void StartLevel(string level)
- {
- #if UNITY_EDITOR
- //Debug.Log("StartLevel");
- #elif UNITY_IPHONE
- _StartLevel(level);
- #elif UNITY_ANDROID
- Agent.CallStatic("startLevel",level);
- #endif
- }
- /// <summary>
- /// 玩家通过关卡
- /// </summary>
- /// <param name="level">如果level设置为null 则为当前关卡</param>
- public static void FinishLevel(string level)
- {
- #if UNITY_EDITOR
- //Debug.Log("FinishLevel");
- #elif UNITY_IPHONE
- _FinishLevel(level);
- #elif UNITY_ANDROID
- Agent.CallStatic("finishLevel",level);
- #endif
- }
- /// <summary>
- /// 玩家未通过关卡
- /// </summary>
- /// <param name="level">如果level设置为null 则为当前关卡</param>
- public static void FailLevel(string level)
- {
- #if UNITY_EDITOR
- //Debug.Log("FailLevel");
- #elif UNITY_IPHONE
- _FailLevel(level);
- #elif UNITY_ANDROID
- Agent.CallStatic("failLevel",level);
- #endif
- }
- /// <summary>
- /// Source9 到Source 20 请在友盟后台网站设置 对应的定义
- /// </summary>
- public enum PaySource
- {
- AppStore = 1,
- 支付宝 = 2,
- 网银 = 3,
- 财付通 = 4,
- 移动 = 5,
- 联通 = 6,
- 电信 = 7,
- Paypal = 8,
- Source9,
- Source10,
- Source11,
- Source12,
- Source13,
- Source14,
- Source15,
- Source16,
- Source17,
- Source18,
- Source19,
- Source20,
- }
- /// <summary>
- /// 游戏中真实消费(充值)的时候调用此方法
- /// </summary>
- /// <param name="cash">本次消费金额</param>
- /// <param name="source">来源</param>
- /// <param name="coin">本次消费等值的虚拟币</param>
- public static void Pay(double cash, PaySource source, double coin)
- {
- #if UNITY_EDITOR
- //Debug.Log("Pay");
- #elif UNITY_IPHONE
- _PayCashForCoin(cash,(int)source,coin);
- #elif UNITY_ANDROID
- Agent.CallStatic("pay",cash , coin, (int)source);
- #endif
- }
- /// <summary>
- /// 游戏中真实消费(充值)的时候调用此方法
- /// </summary>
- /// <param name="cash">本次消费金额</param>
- /// <param name="source">来源:AppStore = 1,支付宝 = 2,网银 = 3,财付通 = 4,移动 = 5,联通 = 6,电信 = 7,Paypal = 8,
- /// 9~100对应渠道请到友盟后台设置本次消费的途径,网银,支付宝 等</param>
- /// <param name="coin">本次消费等值的虚拟币</param>
- public static void Pay(double cash, int source, double coin)
- {
- if (source < 1 || source > 100) {
- throw new System.ArgumentException ();
- }
- #if UNITY_EDITOR
- //Debug.Log("Pay");
- #elif UNITY_IPHONE
- _PayCashForCoin(cash,source,coin);
- #elif UNITY_ANDROID
- Agent.CallStatic("pay",cash , coin, source);
- #endif
- }
- /// <summary>
- /// 玩家支付货币购买道具
- /// </summary>
- /// <param name="cash">真实货币数量</param>
- /// <param name="source">支付渠道</param>
- /// <param name="item">道具名称</param>
- /// <param name="amount">道具数量</param>
- /// <param name="price">道具单价</param>
- public static void Pay(double cash, PaySource source, string item, int amount, double price)
- {
- #if UNITY_EDITOR
- //Debug.Log("Pay");
- #elif UNITY_IPHONE
- _PayCashForItem(cash,(int)source,item,amount,price);
- #elif UNITY_ANDROID
- Agent.CallStatic("pay",cash, item, amount, price, (int)source);
- #endif
- }
- /// <summary>
- /// 玩家使用虚拟币购买道具
- /// </summary>
- /// <param name="item">道具名称</param>
- /// <param name="amount">道具数量</param>
- /// <param name="price">道具单价</param>
- public static void Buy(string item, int amount, double price)
- {
- #if UNITY_EDITOR
- //Debug.Log("Buy");
- #elif UNITY_IPHONE
- _Buy(item,amount,price);
- #elif UNITY_ANDROID
- Agent.CallStatic("buy", item, amount, price);
- #endif
- }
- /// <summary>
- /// 玩家使用虚拟币购买道具
- /// </summary>
- /// <param name="item">道具名称</param>
- /// <param name="amount">道具数量</param>
- /// <param name="price">道具单价</param>
- public static void Use(string item, int amount, double price)
- {
- #if UNITY_EDITOR
- //Debug.Log("Use");
- #elif UNITY_IPHONE
- _Use(item, amount, price);
- #elif UNITY_ANDROID
- Agent.CallStatic("use", item, amount, price);
- #endif
- }
- /// <summary>
- /// Source4 到Source 10 请在友盟后台网站设置 对应的定义
- /// </summary>
- public enum BonusSource
- {
-
- 玩家赠送 = 1,
- Source2 =2,
- Source3 =3,
- Source4,
- Source5,
- Source6,
- Source7,
- Source8,
- Source9,
- Source10,
- }
- /// <summary>
- /// 玩家获虚拟币奖励
- /// </summary>
- /// <param name="coin">虚拟币数量</param>
- /// <param name="source">奖励方式</param>
- public static void Bonus(double coin, BonusSource source)
- {
- #if UNITY_EDITOR
- //Debug.Log("Bonus");
- #elif UNITY_IPHONE
- _BonusCoin(coin, (int)source);
- #elif UNITY_ANDROID
- Agent.CallStatic("bonus", coin, (int)source);
- #endif
- }
- /// <summary>
- /// 玩家获道具奖励
- /// </summary>
- /// <param name="item">道具名称</param>
- /// <param name="amount">道具数量</param>
- /// <param name="price">道具单价</param>
- /// <param name="source">奖励方式</param>
- ///
- public static void Bonus(string item, int amount, double price, BonusSource source)
- {
- #if UNITY_EDITOR
- //Debug.Log("Bonus");
- #elif UNITY_IPHONE
- _BonusItem(item, amount, price, (int)source);
- #elif UNITY_ANDROID
- Agent.CallStatic("bonus", item, amount, price, (int)source);
- #endif
- }
- //使用sign-In函数后,如果结束该userId的统计,需要调用ProfileSignOff函数
- public static void ProfileSignIn(string userId)
- {
- #if UNITY_EDITOR
- //Debug.Log("ProfileSignIn");
- #elif UNITY_IPHONE
- _ProfileSignInWithPUID(userId);
- #elif UNITY_ANDROID
- Agent.CallStatic("onProfileSignIn", userId);
- #endif
- }
- //使用sign-In函数后,如果结束该userId的统计,需要调用ProfileSignOfff函数
- //provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。
- public static void ProfileSignIn(string userId,string provider)
- {
- #if UNITY_EDITOR
- //Debug.Log("ProfileSignIn");
- #elif UNITY_IPHONE
- _ProfileSignInWithPUIDAndProvider(userId,provider);
- #elif UNITY_ANDROID
- Agent.CallStatic("onProfileSignIn", provider,userId);
- #endif
- }
-
- //该结束该userId的统计
- public static void ProfileSignOff()
- {
- #if UNITY_EDITOR
- //Debug.Log("ProfileSignOff");
- #elif UNITY_IPHONE
- _ProfileSignOff();
- #elif UNITY_ANDROID
- Agent.CallStatic("onProfileSignOff");
- #endif
-
- }
- #if UNITY_IPHONE
- [DllImport("__Internal")]
- private static extern void _SetUserLevel(int level);
- [DllImport("__Internal")]
- private static extern void _SetUserInfo(string userId, int gender, int age, string platform);
- [DllImport("__Internal")]
- private static extern void _StartLevel(string level);
- [DllImport("__Internal")]
- private static extern void _FinishLevel(string level);
- [DllImport("__Internal")]
- private static extern void _FailLevel(string level);
- [DllImport("__Internal")]
- private static extern void _PayCashForCoin(double cash, int source, double coin);
- [DllImport("__Internal")]
- private static extern void _PayCashForItem(double cash, int source, string item, int amount, double price);
- [DllImport("__Internal")]
- private static extern void _Buy(string item, int amount, double price);
- [DllImport("__Internal")]
- private static extern void _Use(string item, int amount, double price);
- [DllImport("__Internal")]
- private static extern void _BonusCoin(double coin, int source);
- [DllImport("__Internal")]
- private static extern void _BonusItem(string item, int amount, double price, int source);
- [DllImport("__Internal")]
- private static extern void _ProfileSignInWithPUID (string puid);
- [DllImport("__Internal")]
- private static extern void _ProfileSignInWithPUIDAndProvider(string puid,string provider);
- [DllImport("__Internal")]
- private static extern void _ProfileSignOff();
- #endif
- }
- }
|