源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

140 lines
3.2 KiB

using UnityEngine;
using System.Collections;
using LuaInterface;
using LuaFramework;
#if UNITY_IPHONE || UNITY_IOS
using System.Runtime.InteropServices;
#endif
public class SDKManager : Manager
{
AndroidJavaObject jo = null;
private static LuaFunction m_callback_func = null;
private static bool m_is_android = false;
private static bool m_is_ios = false;
#if UNITY_IPHONE || UNITY_IOS
[DllImport("__Internal")]
private static extern void CallIOSSDKFunc(string arg);
[DllImport("__Internal")]
private static extern int CallIOSIntFunc(string arg);
[DllImport("__Internal")]
private static extern bool CallIOSBoolFunc(string arg);
[DllImport("__Internal")]
private static extern string CallIOSStringFunc(string arg);
#endif
void Start()
{
if (Application.platform == RuntimePlatform.Android)
m_is_android = true;
if (Application.platform == RuntimePlatform.IPhonePlayer)
m_is_ios = true;
}
void Update ()
{
}
public void CallSDKFunc(string data)
{
if (!AppConst.SupportSDKMode)
return;
LogManager.LogWarning("CallSDKFunc:" + data);
if (m_is_android)
{
jo.Call("GameCallInto", data);
}
if(m_is_ios)
{
#if UNITY_IPHONE || UNITY_IOS
CallIOSSDKFunc(data);
#endif
}
}
public void RegisterCallbackFunc(LuaFunction func)
{
if (!AppConst.SupportSDKMode)
return;
if (m_is_android)
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
}
m_callback_func = func;
}
public void CallGameFunc(string func_data)
{
Debug.Log("CallGameFunc:" + func_data);
if ( m_callback_func != null )
{
m_callback_func.Call(func_data);
}
if (func_data.Contains("ReceiveMemoryWarning"))
AppConst.IsLowMemoryState = true;
}
public int CallIntFunc(string data)
{
if (!AppConst.SupportSDKMode)
return 0;
if (m_is_android)
return jo.Call<int>("CallIntFunc", data);
if (m_is_ios)
{
#if UNITY_IPHONE || UNITY_IOS
return CallIOSIntFunc(data);
#endif
}
return 0;
}
public bool CallBoolFunc(string data)
{
if (!AppConst.SupportSDKMode)
return false;
if (m_is_android)
return jo.Call<bool>("CallBoolFunc", data);
if (m_is_ios)
{
#if UNITY_IPHONE || UNITY_IOS
return CallIOSBoolFunc(data);
#endif
}
return false;
}
public string CallStringFunc(string data)
{
if (!AppConst.SupportSDKMode)
return "";
if (m_is_android)
return jo.Call<string>("CallStringFunc", data);
if (m_is_ios)
{
#if UNITY_IPHONE || UNITY_IOS
return CallIOSStringFunc(data);
#endif
}
return "";
}
}