/** * 问题1:参数传递最好改用json...懒得去搞了!!! * 问题2:安卓和IOS端所需的相关参数竟然不同,MMP!!!,凑合用不改了。。。 */ using System.Collections; using UnityEngine; using System.IO; using System; namespace SDK { public class AndroidProxy : Proxy { public static AndroidJavaObject currentActivity; private const string CLS_UNITY_PLAYER = "com.unity3d.player.UnityPlayer"; public AndroidProxy() { var player = new AndroidJavaClass(CLS_UNITY_PLAYER); currentActivity = player.GetStatic("currentActivity"); } public override void Init() { currentActivity.Call("Init"); } public override void Login() { currentActivity.Call("Login"); } public override void Exit() { currentActivity.Call("BackPressed"); } public override void SubmitExtraData(SDKSubmitExtraDataArgs args) { currentActivity.Call("SubmitExtraData", args.dataType, args.serverID, args.serverName, args.zoneID, args.zoneName, args.roleID, args.roleName, args.roleLevel, args.guildID, args.Vip, args.moneyNum, args.roleCreateTime, args.roleLevelUpTime); } public override void Pay(SDKPayArgs args) { currentActivity.Call("Pay",args.productId, args.productName, args.productDesc, args.price, args.ratio, args.buyNum, args.coinNum, args.zoneId, args.serverID, args.serverName, args.accounted, args.roleID, args.roleName, args.roleLevel, args.vip, args.guildID, args.payNotifyUrl, GameLogic.Util.Base64Encode(args.extension)); } public override bool IsSupportExit() { return currentActivity.Call("IsSupportExit"); } //sdk获取支付订单号 public override string GetPayOrderID() { return currentActivity.Call("GetOrderID"); } //SDK截屏 public void ShotCapture() { StartCoroutine(ScreenShotPNG()); } IEnumerator ScreenShotPNG() { yield return new WaitForEndOfFrame(); int width = Screen.width; int height = Screen.height; Texture2D screenShot = new Texture2D(width, height, TextureFormat.RGB24, false); screenShot.ReadPixels(new Rect(0, 0, width, height), 0, 0); screenShot.Apply(); byte[] bytes = screenShot.EncodeToPNG(); Destroy(screenShot); currentActivity.Call("SendScreenshotData", bytes); } } }