Unity3D2020+导出Android工程中使用并交互

这篇具有很好参考价值的文章主要介绍了Unity3D2020+导出Android工程中使用并交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

,

目录

1,版本信息

2,前期准备

Unity方面:

Android方面:

3,Android与Unity3D交互


1,版本信息

unity2020+

android studio 2021

*不要用android studio 2020系列,存在不能导入Library的bug

2,前期准备

Unity方面:

1,先配置打包的一些必要要素,包括包名之类

Unity3D2020+导出Android工程中使用并交互

2,修改打包选项,将其打包为Android工程 Unity3D2020+导出Android工程中使用并交互

3,打包出来的工程如下,其中unityLibrary是我们需要作为使用的对象

 Unity3D2020+导出Android工程中使用并交互

Android方面:  

1,新建一个主工程,包名需要与unity方面保持一致

Unity3D2020+导出Android工程中使用并交互

 Unity3D2020+导出Android工程中使用并交互

这里最后的包名不一致,会导致安装之后出现两个不同的界面,大概就和这位老兄差不多。

2,等待加载完毕后,点击import module导入unityLibrary

Unity3D2020+导出Android工程中使用并交互

 Unity3D2020+导出Android工程中使用并交互

*这里有个比较坑的点,android studio 2020系列不能正常导入,点击不了关闭。解决的办法就是卸载之后装其它版本。

3,导入之后,会报 一些错,这时候需要添加一些配置。然后关闭AS工程再打开就会自动加载。

A problem occurred evaluating project ':unityLibrary'.
> Could not get unknown property 'unityStreamingAssets' for object of type com.android.build.gradle.internal.dsl.AaptOptions$AgpDecorated.
unityStreamingAssets=.unity3d, google-services-desktop.json, google-services.json, GoogleService-Info.plist

Unity3D2020+导出Android工程中使用并交互

4,更改gradle配置文件:

 ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }

    implementation project(path:':unityLibrary')
    implementation fileTree(dir: project(':unityLibrary').getProjectDir().toString()+('\\libs'), include: ['*.jar', '*.aar'])

Unity3D2020+导出Android工程中使用并交互

并在string.xml添加如下的代码

<string name="game_view_content_description">Game view</string>

Unity3D2020+导出Android工程中使用并交互

5,重点!这里和网上别的博客有些不一样,需要特别注意

如果按照别的帖子,直接新建个activity,最后导出的安装会显示两个app。

 Unity3D2020+导出Android工程中使用并交互

 Unity3D2020+导出Android工程中使用并交互

 Unity3D2020+导出Android工程中使用并交互

大致意思就是,将主 Activity改为集成UnityPlayerActivity,再将其作为唯一启动函数,最后保证打出来的是一个包。

6,配置ndk路径

Unity3D2020+导出Android工程中使用并交互

ndk.dir=路径

这里可以沿用Unity配置的路径

 Unity3D2020+导出Android工程中使用并交互

到这一步之后基本就可以打包了。 

3,Android与Unity3D交互

这一步实际上有些老生常谈了,对于Unity方面:

      var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
      var  currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");


//使用示例
        currentActivity.Call("JuheGameStage",1000);//埋点


//回调示例
 void JuheCall(string _str)
    {
       
        //1:成功;2:失败
        Debug.Log("安卓传来初始化信息 : " + _str);
    }

android方面:文章来源地址https://www.toymoban.com/news/detail-401434.html


    public void JuheGameStage(int _id)
    {
        Log.e("Unity  SDK :", "JuheGameStage");
    }

  //给Unity传值
    private void JuheCallBack(String _sign,String _str)
    {
        UnityPlayer.UnitySendMessage("SDKManager", _sign, _str);
        Log.e("Unity YofiJuhe SDK :", "JuheCallBack:"+_sign+"  "+_str);
    }

到了这里,关于Unity3D2020+导出Android工程中使用并交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 怎么在unity3D工程中导入Newtonsoft.Json

    打开 Unity 编辑器。 转到菜单栏的 “Window”(窗口)选项,然后选择 “Package Manager”(包管理器) 在搜索框中输入 “Newtonsoft Json” 进行搜索。 注意:要选择Unity Registry 在搜索结果中,会看到 “Newtonsoft Json” 类似名称的项目。 单击搜索结果下方的 “Install”(安装)按钮。

    2024年02月02日
    浏览(40)
  • 【Unity3D】Unity与Android交互

            本文主要介绍 Unity 打包发布 Android apk 流程、基于 AndroidJavaObject(或 AndroidJavaClass)实现 Unity 调用 Java 代码、基于 UnityPlayer 实现 Java 调用 Unity 代码,官方介绍见→Android。         Unity 项目 C# 中获取平台的代码如下,需要引入 UnityEngine 命名空间。         Ru

    2024年02月07日
    浏览(33)
  • Unity3D 爆火的休闲益智游戏工程源码/3D资源 大合集

    不定期补充新游戏工程源码!!! 博客种没有的游戏类型可以在评论区留言@我,我尽量哈~ 想要定制或代开发游戏私信我 **1、2D 关卡 益智,羊了个羊 经典玩法 下载地址:https://download.csdn.net/download/qq_43505432/89165409 游戏截图: 2、2D 第三人称 关卡 益智,控制角色飞行闯关 下

    2024年04月22日
    浏览(30)
  • 在Android中Unity3D透明背景的实现

    在Unity中,可以通过Window-Rendering-lighting-在属性面板中选择Environment,修改 Skybox Material 为 None 来去掉天空盒。 但去掉天空盒的效果是这样的: 这样的效果明显不是预期的效果。 去掉天空盒并不代表背景被透明,还需要设置Camera的背景。 需要设置黑色透明度0,即ARGB为(0,

    2023年04月08日
    浏览(77)
  • 【Unity3D日常开发】Unity3D中协程的使用

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 最近有小伙伴问协程怎么用、怎么写,我也是会用会写,但是原理不是很明白。 学习了一下,总结出

    2024年02月12日
    浏览(43)
  • Unity3D PC、Android、iOS平台打包流程

    在Unity窗口中,按下Ctrl+Shift+B快捷键,或者在菜单栏选择File-BuildSettings...,打开设置窗口。“Platform”下的选择项默认选择“Windows,Mac,Linux”。单击左下方的“Player Settings...”继续后续设置(应用名、应用分辨率、图标等),如图1-1所示。 图1-1 PC平台选择 接着,点击Add Op

    2023年04月20日
    浏览(45)
  • [unity3D]什么是预制体(Prefab)?如何制作预制体?如何导出预制体?预制体变体是什么?

    将物体转成预制体之后,就可以以此为模板创建非常多个和预制体一模一样的物体了,其实就是复制。在游戏中我们都见过很多一模一样的物体,只是放置的位置或者其他一些参数不太一样,我们不可能一个一个从方块,球开始慢慢建造,所以就出现了预制体,帮助我们减少

    2024年02月02日
    浏览(30)
  • Unity3d C#实现场景编辑/运行模式下3D模型XYZ轴混合一键排序功能(含源码工程)

    在部分场景搭建中需要整齐摆放一些物品(如仓库中的货堆、货架等),因为有交互的操作在单个模型上,每次总是手动拖动模型操作起来也是繁琐和劳累。 在这背景下,我编写了一个在运行或者编辑状态下都可以进行一键排序模型的脚步。方便在场景搭建时,可以快速搭建

    2024年01月17日
    浏览(41)
  • Unity3d发布android项目,打包apk包流程(unity2021.3.10)

    1、如下图,在安装版本设置里,点击添加模块。如果没有添加模块,证明你安装路径不是目前版本的安装路径,先去设置回来。 2、框选Android Build Support,点击继续,如下图, 3、同意,安装,如下图, 4、等待安装完成即可,如下图。 1、点击菜单栏File→Build Settings,进行编辑

    2023年04月23日
    浏览(40)
  • Unity3d 2021版本工程打开Visual Studio错误未找到这些文件,将无法加载的问题

    最近是和Unity3d 2021版本杠上了啊,因为需要的一个功能必须用Unity3d 2021版本,所以带出来了这一系列的问题。这个问题是我在Unity编辑器上Open C# Project之后VS会打不开工程,并提示“命令行中指定了以下文件: 未能找到这些文件,将无法加载。”: 而且***.sln、Assembly-CSharp.c

    2024年02月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包