android studio集成unity导出工程的实现

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

环境

1,android studio 2021.1.1.1
2, unity 2021.2.4

新建android 工程

1,

android studio集成unity导出工程的实现_第1张图片

2,

android studio集成unity导出工程的实现_第2张图片

导出 unity 工程

1,

android studio集成unity导出工程的实现_第3张图片

2,导出结果 unityLibrary 就是我们想要的结果 launcher 暂时用不上

android studio集成unity导出工程的实现_第4张图片

3, 在android 工程中

android studio集成unity导出工程的实现_第5张图片

4,选择unitylibarary 目录

android studio集成unity导出工程的实现_第6张图片

5,

android studio集成unity导出工程的实现_第7张图片

6,更改 app gradle配置文件:

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

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

android studio集成unity导出工程的实现_第8张图片


7,删除manifest配置

android studio集成unity导出工程的实现_第9张图片

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

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

android studio集成unity导出工程的实现_第10张图片

9,添加 value值 不加也会挂掉

android studio集成unity导出工程的实现_第11张图片

Game view

10,调用

android studio集成unity导出工程的实现_第12张图片

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("currentActivity")){
                jo.Call("UnityCallAndroid");
            }
        }
    }

到此这篇关于android studio集成unity导出工程的实现的文章就介绍到这了,更多相关android studio unity导出工程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(android studio集成unity导出工程的实现)