作者:周可辰
1、 首先在Eclipse中创建一个Android工程UnityAndroidTest,并设置好包名。
2、 在项目属性中添加classes.jar,在Unity的安装目录下:Editor\Data\PlaybackEngines\androidplayer\bin\
3、 修改UnityAndroidTestActivity.java如下:
package com.sleepyhippo.test; import com.unity3d.player.UnityPlayerActivity; public class UnityAndroidTestActivity extends UnityPlayerActivity { private static final String TAG = "Compass"; static public float x; public static float getX() { x+=10.0; return x; }
4、刷新一下工程,然后右键点击工程,选择Export,导出jar包。
5 、打开Unity,新建工程UnityAndroidTest
6、 将刚才导出的test.jar和Eclipse中项目生成的AndroidManifest.xml和res文件夹复制到Unity工程中的Assets\Plugins\Android目录下(Plugins和Android需要自己新建)
这时,Unity中的Asset窗口如图:
7、新建一个test.cs,代码如下:
using UnityEngine; using System.Collections; using System; public class test : MonoBehaviour { static float xValue; // Use this for initialization void Start () { AndroidJNI.AttachCurrentThread(); } void Update() { if(Input.GetKey(KeyCode.Escape)) { Application.Quit(); } using (AndroidJavaClass cls_UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { using (AndroidJavaObject obj_Activity = cls_UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity")) { AndroidJavaClass cls_CompassActivity = new AndroidJavaClass("com.sleepyhippo.test.UnityAndroidTestActivity"); cls_CompassActivity.CallStatic("Init", obj_Activity); xValue = cls_CompassActivity.CallStatic<float>("getX"); } } } void OnGUI() { GUI.Label(new Rect(Screen.width / 2 -200, Screen.height / 2, 400,100), "x = " + xValue.ToString()); } }
9、 将项目转换为Android项目,并设置Bundle Identifier为Java中自己定义的包名:这里我用的是com.sleepyhippo.test
10、 点击Build,导出apk,并用豌豆荚安装到模拟器中,最终运行效果如下图:
以上内容参考了羽化前辈的文章:http://blog.csdn.net/libeifs/article/details/6791346