1. 官方参考文档 http://docs.unity3d.com/Manual/PluginsForAndroid.html
2. Unity 5.4.0f3 (64-bit) 配置android 的开发环境(插件的导入)
2.1 在Assets/Plugins/Android目录结构中,AndroidManifest.xml文件放在Android文件夹中unity则会默认使用该配置文件,Unity中的Player Settings 则不用配置。
2.2 插件资源文件必须放在Assets/Plugins/Android目录的子文件夹中,文件夹名称自取如myRes。插件需包含android工程的资源文件res及其包含的内容,AndroidManifest.xml,project.properties(指明android.library=true)。android library 工程{android}/bin 目录中的jar包文件,需要放在Android目录下,与myRes同级。
2.3 unity c# 脚本文件
using UnityEngine;
using System.Collections;
using System;
public class testActivity : MonoBehaviour {
// Use this for initialization
void Start () {
print("------- start() is called!");
}
// Update is called once per frame
void Update () {
//当用户按下手机的返回键或home键退出游戏
if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home) )
{
Application.Quit();
}
}
// 使用gui创建按钮
void OnGUI() {
//print("------------- OnGUI() is called!");
if (GUILayout.Button("OPEN Activity01", GUILayout.Height(100)))
{
print("------------- OPEN Activity01 -------------");
using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
//注释1
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
Debug.Log("message from java: " + jo);
Debug.Log(jo.Call<AndroidJavaObject>("getCacheDir").Call<string>("getCanonicalPath"));
jo.Call("startActivity0", "第一个Activity");
// 这种方式获取到类,只能调用静态方法
//AndroidJavaClass myClass = new AndroidJavaClass("com.fenghun.unitytestactivity.UnityTestActivity");
//myClass.CallStatic("test");
// 这种方式实例化的对象,不具有activity的上下文属性
//AndroidJavaObject myJO = new AndroidJavaObject("com.fenghun.unitytestactivity.UnityTestActivity");
//myJO.Call("startActivity0", "第一个Activity");//
}
}
if (GUILayout.Button("OPEN Activity02", GUILayout.Height(100)))
{
print("------------- OPEN Activity02 -------------");
using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
//AndroidJavaObject jo = new AndroidJavaObject("com.fenghun.unitytestactivity.UnityTestActivity");
//jo.Call("startActivity1", "第二个Activity");
jo.Call("startActivity1", new object[] { "第二个Activity" });
}
}
}
}
示例工程源码链接:http://download.csdn.net/detail/fenghun5987/9610780
参考链接:
http://www.xuanyusong.com/archives/667