栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

android打aar给unity使用

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android打aar给unity使用

文章目录
        • 效果
        • 方式一
          • android端
            • 1、新建library库
            • 2、复制jar包
            • 3、android项目中引用jar包
            • 4、新建activity类继承UnityPlayerActivity
            • 5、修改库的清单文件AndroidManifest.xml
            • 6、打aar包
          • Unity端
            • 1、新建文件夹,引入aar包
            • 2、引入清单文件
            • 注意1
            • 3、写方法调用
            • 4、修改unity的包名
            • 5、 打包
        • 方式二
          • android端
            • 1、新建library库
            • 2、写方法
            • 3、打aar包
          • Unity端
            • 1、引入aar包
            • 2、写代码引用
        • 参考文献

效果


方式一 android端 1、新建library库 2、复制jar包

把unity的安装目录下面的class.jar包给复制出来,具体目录如下

注意

这里分 il2cpp 和 mono 两个,这个取决于你后面unity要使用那个方式打包,我这里使用的是il2cpp里面的jar包


3、android项目中引用jar包

以compileOnly 的方式引用

dependencies {
    compileOnly files('libs/unity-classes.jar')
}
4、新建activity类继承UnityPlayerActivity
import com.unity3d.player.UnityPlayerActivity;

public class TestActivity extends UnityPlayerActivity {
	// 自定义方法,供unity调用
    public String getPath() {
        return Environment.getExternalStorageDirectory().getAbsolutePath();
    }
}
5、修改库的清单文件AndroidManifest.xml

我这里就是直接把app的清单文件直接复制过来,然后删除报错的代码,然后把新建的activity给引进来就可以了




    
        
            
                

                
            
        
    


6、打aar包

请参考android使用maven-publish打jar包和aar包并上传到本地maven仓库 这篇文章

Unity端 1、新建文件夹,引入aar包

2、引入清单文件

注意1

在这里要注意复制出来的清单文件和aar包里面清单文件的不同之处

  • 包名不同,unity的清单文件里面的包名要和一会后面设置的包名保持一致,但是不能和aar里面的包名一样
  • 新增app_name在unity的清单文件的application标签上新增label
  • 删除启动项,unity的清单文件里删除启动项,因为aar的包里已经有了,所以删除
3、写方法调用
	public void test1() {
		AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
		AndroidJavaObject jo = jc.GetStatic("currentActivity");
		string str = jo.Call("getPath");
		Text.text = "方式一:" + str;
	}
4、修改unity的包名

5、 打包

方式二 android端 1、新建library库 2、写方法
public class Utils {
	// 该方法供unity调用
    public int add(int a, int b) {
        return a + b;
    }
}
3、打aar包

步骤同方法一

Unity端 1、引入aar包 2、写代码引用
public void test2()
{
	// 通过包名+类名来获取
	AndroidJavaObject jo = new AndroidJavaObject("com.test.testlib.Utils");
	int str = jo.Call("add",2,3);
	Text.text = "2 + 3 = " + str;
}

剩下其余的步骤跟 方法一 相同,这里不需要引用清单文件

参考文献

[1] Unity使用aar打出apk过程一览
[2] Unity和Android通信

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901718.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号