当前位置:   article > 正文

android studio 集成 unity 导出工程_unity出安卓工程

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'
        }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

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

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

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

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);
    }
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

c# 调用 java

  private void OnBtnClickHandler()
    {
        using (jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")){
            using (jo = jc.GetStatic<AndroidJavaObject>("currentActivity")){
                jo.Call("UnityCallAndroid");
            }
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

引用

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/556358
推荐阅读
相关标签
  

闽ICP备14008679号