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

环境

1,android studio 2021.1.1.1
2, unity 2021.2.4

新建android 工程

1,

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

2,

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

导出 unity 工程

1,

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

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

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

3, 在android 工程中

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

4,选择unitylibarary 目录

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

5,

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

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导出工程的实现插图7

7,删除manifest配置

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

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


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

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

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

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


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

10,调用

android studio集成unity导出工程的实现插图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");
 	             }
 	         }
 	     }

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

标签

发表评论