本文对拥有相关经验的同学会有一些帮助,如果没有相关经验,请移步学习Android基础和Unity基础。如果有些看不懂的东西欢迎留言……
一、Unity和Android交互
目前Unity和Android交互主要有两种方案:
- Android 打出 jar包或者aar包放在Unity的plugin/Android文件夹中以供调用;
- Unity 导出Android工程供Android Studio处理(早期这里也支持Eclipse,但是那东西太丑了这里不予讨论哈哈哈)
1.先说下Unity如何和Java进行交互
Unity和Java交互,Unity为我们提供了一个很好用的工具类AndroidJavaClass,具体用法的话废话少说上代码。
public class SDK : MonoBehaviour
{
private static SDK sdkInstance;
#if UNITY_ANDROID //&& !UNITY_EDITOR
private AndroidJavaClass androidJavaClass;
private AndroidJavaObject androidJavaObject;
#endif
public static SDK Instance
{
get
{
if (sdkInstance == null)
{
sdkInstance = new SDK();
return sdkInstance;
}
else
{
return sdkInstance;
}
}
}
private SDK()
{
Init();
}
public void Init()
{
#if UNITY_ANDROID && !UNITY_EDITOR
androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
androidJavaObject = androidJavaClass.GetStatic<AndroidJavaObject>("currentActivity");
#endif
}
//获取设备ID
public string GetDeviceID()
{
#if UNITY_ANDROID && !UNITY_EDITOR
string s = androidJavaObject.Call<string>("getDeviceId");//这里是调用Android Activity中注册的接口方法,怎么注册下面会