尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

尝试将Unity项目 接入Android

发布时间:2026/9/27 4:12:54

资讯中心
01
ARTICLE

尝试将Unity项目 接入Android

尝试将Unity项目 接入Android
尝试将Unity项目接入Android将Unity项目导出把UnityLibrary放到Android项目的APP目录的根目录中导入项目:修改build.gradle.kts 导入Unity模块implementation(project(:unityLibrary))接入方案直接在MainActivity中使用Intent跳转到UnityPlayerActivityval intent Intent(context, SettingsActivity::class.java) context.startActivity(intent)使用UnityPlayer展示Unity画面设置一个Fragment来存放Unity画面自定义一个Activity在布局文件添加Fragment位置使用FragmentManager添加UnityFragment画面添加到Activity中这样可以在Activity的画面中方便地添加自定义UI注意在打开Unity画面后再退出会出现回不到主页面的情况如果 Unity 和主界面在同一进程Unity 退出时杀进程主界面也会一起被杀可以在 Manifest文件里面 把 显示Unity的自定义Activity 设置成单开进程activity android:name.unity.MyUnityActivity android:process:unity android:exportedfalse /这样在退出Unity后主程序的进程不会被杀死2. 在导入UnityLibrary后安装APP会发现有两个图标其中一个点击会直接打开Unity的画面解决方案修改unityLibrary/src/main/AndroidManifest.xmlactivity android:namecom.unity3d.player.UnityPlayerActivity android:themestyle/UnityThemeSelector android:screenOrientationfullUser android:launchModesingleTask android:configChangesmcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density android:resizeableActivityfalse android:hardwareAcceleratedfalse android:exportedtrue !-- intent-filter-- !-- category android:nameandroid.intent.category.LAUNCHER /-- !-- action android:nameandroid.intent.action.MAIN /-- !-- /intent-filter-- meta-data android:nameunityplayer.UnityActivity android:valuetrue / meta-data android:namenotch_support android:valuetrue / /activity注释掉Manifest注册的UnityPlayerActivity中intent-filter里面的内容category android:nameandroid.intent.category.LAUNCHER /会让Activity在桌面Launcher上单独显示一个应用图标在使用UnityLibrary里面的UnityPlayer的时候可能会发现怎么我导入了unityLibrary但是import com.unity3d.player.UnityPlayer还是会说找不到明明unityLibrary/libs/unity-classes.jar这个jar包里面就有UnityPlayer。修改unityLibrary/build.gradledependencies { // implementation fileTree(dir: libs, include: [*.jar]) api fileTree(dir: libs, include: [*.jar]) }替换implementation为apiimplementation 不会把 unity-classes.jar 暴露给依赖本模块的app导致app里import com.unity3d.player.UnityPlayer报Unresolved reference替换以后就能正常编译了如果AndroidStudio还是爆红可以file - invalidate caches - invalidate and restart 重置一下缓存就不会报错了Android与Unity之间通信Android - Unity通过UnityPlayer.UnitySendMessage(GameObject的名字,方法名,String类型传参)Android可以调用Unity里面的方法注意第一个参数是GameObject的名字不是类名Unity - AndroidUnity可以调用 来发消息给Android在Unity使用AndroidJavaClass通过包名、方法名、参数其中参数数量要与方法参数数量对应using(AndroidJavaClassbridgenewAndroidJavaClass(com.test.myapp.unity.bridge.MyUnityBridge)){bridge.CallStatic(onGameFinished,String类型的参数);}Android这边设置一个单列来让Unity调用objectMyUnityBridge{funsendToNative(data:String){//通过广播传递消息}JvmStaticfunonGameFinished(result:String){println(Unity 通知:$result)sendToNative(result)}}在接收到消息后可以通过广播发在Android内部交流要注意如果Unity和Android的接收端是同一进程主程序是另一个进程可以使用广播、Intent来传递消息或者将数据保存在MMKV。思考现在只是简单的添加了unityLibrary模块后续可以尝试直接使用arr包
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。