[Unity移动端]SDK接入01:环境搭建和简单交互

一.下载安装eclipse/adt/sdk,搭建android开发环境

参考链接:https://blog.csdn.net/Amdrose/article/details/89811034

注意在eclipse官网下载时最好选国内的镜像,用国外的可能会下载失败

要注意的是,下载完sdk后不要把压缩包删了,因为后面可能会遇到更新sdk后SDK Manager打不开的情况,需要把压缩包的tools文件夹去替换掉现有的tools文件夹:

https://blog.csdn.net/wang295689649/article/details/60960953

同时也能解决下面的问题:

在Eclipse中添加语法提示:https://jingyan.baidu.com/article/5553fa82a40d9865a3393469.html

二.Unity与Android的简单交换

参考链接:

https://blog.csdn.net/huaixiaoniu/article/details/79225320

https://blog.csdn.net/qq_16542775/article/details/46500837

unity版本:Unity 2018.3.8f1

eclipse版本:2020-03

1.打开eclipse,File-New-Android Application Project,创建安卓工程,注意这里的设置要和unity一致,同時eclipse用的sdk也要把4.1和4.4下了

2.一路往下点,创建好安卓工程。将unity安装目录EditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClasses下的classes.jar放到工程中的libs目录下(如果没该目录则创建一个)

classes.jar提供了一些api,供android调用unity。然后对这个jar添加引用

3.修改MainActivity.java

android调用unity的方式为:

UnityPlayer.UnitySendMessage,第一个参数为unity中go的名字,第二个参数为该go任一脚本中的方法名,第三个参数为该方法的参数

 1 package com.example.testsdk;
 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 }

4.修改AndroidManifest.xml

添加一行,<meta-data android:name="unityplayer.UnityActivity" android:value="true" />

位置如下,不然在unity中Build时会报警告Unable to find unity activity in manifest. You need to make sure orientation attribut is set to portrait manually.

5.将工程导出成jar包

6.将安卓工程中的AndroidManifest.xml和res弄到unity中,创建bin和libs文件夹,bin放入刚才的jar包

7.在unity中新建一个场景,新建Canvas,挂上下面的脚本,然后Build出apk就ok了

 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.在unity中Build时可能会有下面的提示

解决方法:

将下载的android-sdk_r24.4.1-windows.zip进行解压,复制粘贴弄成2份,1份给unity用,1份给eclipse用,即这样:

确保是2份sdk后,上面的问题弹窗都选择"Update Android SDK"即可解决

2.

原文地址:https://www.cnblogs.com/lyh916/p/12584810.html