android studio 集成 unity 导出工程

最近需要将 unity 导出工程 嵌入到 android 工程

环境

1,android studio 2021.1.1.1
2, unity 2021.2.4

新建android 工程

1,在这里插入图片描述

2,在这里插入图片描述

导出 unity 工程

1,
在这里插入图片描述
2,导出结果 unityLibrary 就是我们想要的结果 launcher 暂时用不上
在这里插入图片描述

3, 在android 工程中
在这里插入图片描述
4,选择unitylibarary 目录
在这里插入图片描述
5,在这里插入图片描述
6, 配置NDK:

在这里插入图片描述

7,更改 app gradle配置文件:

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

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

在这里插入图片描述
8,删除manifest配置
在这里插入图片描述

9, 在 gradle.property 添加配置 不加这个会报错

unityStreamingAssets=.unity3d, google-services-desktop.json, google-services.json, GoogleService-Info.plist

在这里插入图片描述
10,添加 value值 不加也会挂掉
在这里插入图片描述

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

11,调用

在这里插入图片描述

Button myBtn=  findViewById(R.id.button);

myBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this,UnityPlayerActivity.class);
        startActivity(intent);
    }
});

android c# 互相调用

android 调用 c#

package com.xingame.unitycallandroid;

import android.os.Bundle;
import android.widget.Toast;

import com.unity3d.player.UnityPlayer;

public class MainActivity extends UnityPlayerActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
    }

    //unity调用Android
    public void UnityCallAndroid () {

        Toast.makeText(this,"unity调用android成功", Toast.LENGTH_LONG).show();

        AndroidCallUnity();
    }
    
    //android调用unity
    public void AndroidCallUnity () {

        //第1个参数为Unity场景中用于接收android消息的对象名称
        //第2个参数为对象上的脚本的一个成员方法名称(脚本名称不限制)
        //第3个参数为unity方法的参数
        UnityPlayer.UnitySendMessage("receiveObj", "UnityMethod", "This is args.");
    }

}

c# 调用 java

  private void OnBtnClickHandler()
    {
        using (jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")){
            using (jo = jc.GetStatic<AndroidJavaObject>("currentActivity")){
                jo.Call("UnityCallAndroid");
            }
        }
    }

引用

官方 git
https://article.itxueyuan.com/9qO5pW

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值