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

17 篇文章 1 订阅
14 篇文章 0 订阅

,

目录

1,版本信息

2,前期准备

Unity方面:

Android方面:

3,Android与Unity3D交互


1,版本信息

unity2020+

android studio 2021

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

2,前期准备

Unity方面:

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

2,修改打包选项,将其打包为Android工程 

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

 

Android方面:
 

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

 

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

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

 

*这里有个比较坑的点,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

4,更改gradle配置文件:

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

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

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

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

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

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

 

 

 

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

6,配置ndk路径

ndk.dir=路径

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

 

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

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方面:


    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);
    }

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值