设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
只需一步,快速开始
首页
BBS
剑灵怀旧服
Unity
美术资源
UE
全套源码
其他内容
奖励任务
分享
Share
每日任务中心
搜索
搜索
怀旧插件
怀旧脚本数据
怀旧攻略
公益服开服通知
AI工具分享
Unity插件
Unity问题答疑
Unity学习教程
Unity AI算法
Unity源码
其他美术文件
MAY文件
3D Max
FBX模型
UE技术讨论
UE学习视频
UE源码
网站源代码
手机游戏源代码
PC游戏
游戏捏脸
其他插件
OFFER摸吧
魔兽地图
单机游戏
本版
帖子
用户
爱开源网
»
首页
›
前端中台
›
Unity
›
Unity与安卓交互
返回列表
发新帖
[Unity学习教程]
Unity与安卓交互
[复制链接]
748
|
0
|
2023-8-23 11:54:56
|
显示全部楼层
|
阅读模式
来自
中国北京
Unity与安卓交互
弁言
在Unity的项目开辟过程中,总会碰到Unity提供的方法不敷以支持安卓平台的开辟,这时间我们就必要引用安卓平台本身的一些方法或者SDK来帮助我们继承开辟,那么Unity和安卓原生时怎么举行交互的呢,在这里我们做一下简朴的极少。
工具
Unity:2019.4.31f1c1
Android Studio:2020.3.1
天生jar包
此过程重要在Android Studio中完成。
创建工程
1、创建一个Empty Activity,点击Next
2、根据本身必要设置对应的项目名称和最小SDK版本,项目名称不必要和Unity包名一样,最小SDK版本必要和Unity中设置的一样。
unity中设置最小SDK
工程设置
1、删除两个无用的工程
2、修改build.gradle
plugins下的id改为com.android.library
删除defaultConfig下的applicationId
3、点击sync now
4、参加Unity classes.jar
jar泉源:unity工具安装目次下的\Editor\Data\PlaybackEngines\AndroidPlayer\Variations,此文件夹中有il2cpp和mono两个文件夹,根据unity的编译选择对应的文件夹下的\Release\Classes\下的classes.jar
例如:C:\Program Files\Unity\Hub\Editor\2019.4.31f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
复制代码
unity编译方式
将jar包复制到android studio工程的libs文件夹下,而且添加为库(Add As Library)。
5、这个版本的classes.jar中不包罗UnityPlayerActivity.java类,必要本技艺动添加。
C:\Program Files\Unity\Hub\Editor\2019.4.31f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Source
复制代码
找到对应路径下的com文件夹,复制到java文件夹下。
6、修改MainActivity类,使其继承UnityPlayerActivity。
package com.aitu.unityandroidutils;
import androidx.appcompat.app.AppCompatActivity;
import com.unity3d.player.UnityPlayerActivity;
import android.os.Bundle;
public class MainActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
}
/**
* 测试
* @return
*/
public int test(){
return 666;
}
}
复制代码
7、修改AndroidManifest.xml文件,如下所示。
终极文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player">
<application>
<activity
android:name="com.aitu.unityandroidutils.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
</activity>
</application>
</manifest>
复制代码
8、天生jar包
选择菜单栏Build-Make Module,举行build。
天生完成之后,找到对应的jar包。jar包在build/intermediates/aar_main_jar/debug下。
利用解压软件,删除com.unity3d.player包,将jar包和Androidmanifest.xml文件导入到Unity项目中。
Unity调用
在Unity中调用test方法。
/// <summary>
/// 测试
/// </summary>
/// <returns></returns>
private int Test()
{
using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
int value = jo.Call<int>("isWiredHeadsetOn");
return value;
}
}
复制代码
AndroidJavaObject
AndroidJavaObject是java.lang.Object通用实例的Unity表示。
它可以用作任何Java类实例的无范例接口。
官方文档:Unity - Scripting API: AndroidJavaObject (unity3d.com)
方法作用Call调用该对象的Java方法(非静态)。CallStatic调用此类的静态方法。CloneReference创建引用同一Java对象的C#对象的克隆。DisposeIDisposable 回调。Get获取对象中字段的值(非静态)。GetRawClass检索指向 Java 类的原始 jclass 指针。注意:利用原始 JNI 函数必要具备 Android Java 原生接口 (JNI) 的高级知识。GetRawObject检索指向 Java 对象的原始 jobject 指针。注意:利用原始 JNI 函数必要具备 Android Java 原生接口 (JNI) 的高级知识。GetStatic获取对象中静态字段的值。Set设置对象中字段的值(非静态)。SetStatic设置对象中静态字段的值。
AndroidJavaClass
AndroidJavaClass是java.lang.Class的通用实例的Unity表示。
继承自AndroidJavaObject
官方文档:Unity - Scripting API: AndroidJavaClass (unity3d.com)
参考文档
Android与Unity交互–接入安卓原生SDK_付帅v的博客-CSDN博客_android 对接unity
尾语
假如有写的不对的地方,欢迎各位大佬批评指正。
来源:
https://blog.csdn.net/yr1102358773/article/details/128287330
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
乐萍
20
主题
0
回帖
60
积分
注册会员
注册会员, 积分 60, 距离下一级还需 290 积分
注册会员, 积分 60, 距离下一级还需 290 积分
积分
60
加好友
发消息
回复楼主
返回列表
Unity
Web开发
易语语言
Cocos Creator
UE
其他
图文推荐
非绿色-黑鳍自动换角色组队吃药自动没疲劳刷金
2024-09-21
绿色-剑灵怀旧完整主线(10月更新)有韩服
2024-09-12
非绿色-定制AI全自动黑鳍V1.2
2024-09-14
剑灵三系精修端 星术咒3鬼3 T2 饰品属性外观
2023-08-16
Unity 超级马里奥
2023-08-22
热门排行
1
非绿色-黑鳍自动换角色组队吃药自动没疲劳
2
非绿色-定制AI全自动黑鳍V1.2
3
绿色-剑灵怀旧完整主线(10月更新)有韩服
4
剑灵三系精修端 星术咒3鬼3 T2 饰品属性外
5
Unity 超级马里奥
6
AI绘画stable-diffusion-webui指定GPU运行
7
非绿色-武神塔合集
8
非绿色-使用教程攻略
9
非绿色 3号自动切线 黑骑 钓鱼 蓝蛙
10
绿色-黑鳍脚本合集