在Unity中调用Android

本文介绍了如何在Unity中调用Android方法,包括在Eclipse创建Android工程,添加classes.jar,修改UnityAndroidTestActivity.java,导出jar包,将资源复制到Unity的PluginsAndroid目录下,编写C#测试脚本,设置Unity的Bundle Identifier,最后构建并运行到模拟器上。

作者:周可辰


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()); 	} }

8、将test.cs拖到Main Camera下,如图:





9、 将项目转换为Android项目,并设置Bundle Identifier为Java中自己定义的包名:这里我用的是com.sleepyhippo.test





10、  点击Build,导出apk,并用豌豆荚安装到模拟器中,最终运行效果如下图:







以上内容参考了羽化前辈的文章:http://blog.csdn.net/libeifs/article/details/6791346




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值