- 最后登录
- 2021-7-6
- 注册时间
- 2012-12-27
- 阅读权限
- 90
- 积分
- 76145
- 纳金币
- 53488
- 精华
- 316
|
首先用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
|
|