纳金网
标题:
eclipse生成jar包并导入unity中无需继承unityplayer进行调用
[打印本页]
作者:
烟雨
时间:
2016-2-28 22:54
标题:
eclipse生成jar包并导入unity中无需继承unityplayer进行调用
首先用eclipse建立工程,简单的建立一个测试的class
package com.example.testsuifeng;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.WindowManager;
import android.view.MenuItem;
public class Suifeng {
private Activity mActivity;
public WindowManager mWindowManager;
public int addTwo(int a)
{
return a;
}
复制代码
右键工程选择属性,设置工程的以library方式输出,点击apply 。运行得到导出的jar包后,导入到unity工程里,将
jar包放在Plugins->Android文件夹下
写上下面调用代码
private AndroidJavaObject javaObj = null;
private AndroidJavaObject GetJavaObject()
{
if (javaObj == null)
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject obj = jc.GetStatic<AndroidJavaObject>("currentActivity");
javaObj = new AndroidJavaObject("com.example.testsuifeng.Suifeng");
}
return javaObj;
}
复制代码
然后自己在GUI里获取GetJavaObject ,然后在调用java里的程序。
ceshi = GetJavaObject.Call<int>("addTwo", 5);
运行程序 你就会得到你想要的结果了
之前一直以为一定要继承unityplayer才可以,今天才搞明白,终于迈过了这个坑。
还有之前一直对AndroidJavaClass与AndroidJavaObject不太理解,现在才弄清楚
[url=]AndroidJavaClass[/url]是將.jar裡,所定義的class實體掉出來讓你使用,呼叫該class所擁有的static functions
[url=]AndroidJavaObject[/url]是將.jar裡,所定義的class實體化成物件後,丟出來讓你使用。這時就可以呼叫這class一般的member functions
作者:
xkjoy
时间:
2016-3-18 00:41
楼主,这样的话是不是retur new AndroidJavaObject("com.example.testsuifeng.Suifeng");即可看了你的代码,发现obj并没有用到,其实就是一句就行?我有空测试一下
作者:
Mxiansheng
时间:
2016-7-10 13:22
好像行不通啊
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5