lyh916

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

参考链接:

https://blog.csdn.net/qq_38513810/article/details/82664947?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

 

Android Studio下载:

http://www.android-studio.org

 

unity版本:2018.3.8

Android Studio版本:3.6.2

 

1. 新建安卓工程,注意最低SDK最好和unity一样

 

2.新建一个library,注意此处的Package name要和unity的一致

 

3.在这个library下新建一个Activity

 

4.将unity安装目录\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes下的classes.jar复制,选中libs目录粘贴,导入这个jar包

 

5.修改library下的MainActivity.java和AndroidManifest.xml

 1 package com.example.mylibrary;
 2 
 3 import android.os.Bundle;
 4 import com.unity3d.player.*;
 5 
 6 public class MainActivity extends UnityPlayerActivity {
 7 
 8     private int count = 1;
 9 
10     @Override
11     protected void onCreate(Bundle savedInstanceState) {
12         super.onCreate(savedInstanceState);
13         //setContentView(R.layout.activity_main);
14     }
15 
16     public void UnityCallAndroid() {
17         UnityPlayer.UnitySendMessage("Canvas", "AndroidCallUnity", "hello" + count);
18         count++;
19     }
20 }

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.mylibrary">
 4 
 5     <application>
 6         <activity android:name=".MainActivity">
 7             <intent-filter>
 8                 <action android:name="android.intent.action.MAIN" />
 9 
10                 <category android:name="android.intent.category.LAUNCHER" />
11             </intent-filter>
12         </activity>
13     </application>
14 
15 </manifest>

 

6.选中library,Build一下,然后将生成的这3个东西放到unity中

 

7.添加这个脚本到Canvas上,然后打包,注意包名要一致,还有Build System的设置

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 using UnityEngine.UI;
 5 
 6 public class TestSDK : MonoBehaviour
 7 {
 8     AndroidJavaClass jc;
 9     AndroidJavaObject jo;
10     public Text text;
11 
12     // Start is called before the first frame update
13     void Start()
14     {
15         jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
16         jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
17     }
18 
19     public void OnBtnClick()
20     {
21         jo.Call("UnityCallAndroid");
22     }
23 
24     public void AndroidCallUnity(string str)
25     {
26         text.text = str;
27     }
28 }

 

问题:

1.

解決:

https://blog.csdn.net/burmem/article/details/80447642?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

 

2.Gradle下载速度慢

解决:

https://www.jianshu.com/p/338860fc4921

posted on 2020-04-01 23:24  艰苦奋斗中  阅读(714)  评论(0)    收藏  举报