Unity调用Android

unity5.X

androidstudio3.1.2

第一步,新建安卓工程

Unity调用Android_第1张图片

Unity调用Android_第2张图片

Unity调用Android_第3张图片

点finish就可以了。

Unity调用Android_第4张图片

新建module。

Unity调用Android_第5张图片

选择Android Library。

Unity调用Android_第6张图片

此处Pacage name要和unity里面的包名一致。然后点finish,等待编译成功。

Unity调用Android_第7张图片

在新建的模块里面添加空的activity。

Unity调用Android_第8张图片

Unity调用Android_第9张图片

点击finish

在Android里面添加unity的classes包;E:\UnityEditor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Classes(地址可能会有变化)

Unity调用Android_第10张图片

把classes复制如下位置

Unity调用Android_第11张图片

Unity调用Android_第12张图片

Unity调用Android_第13张图片右键Add AS Library

之后会变成这个样子

Unity调用Android_第14张图片

删除layout下的布局文件

Unity调用Android_第15张图片

修改刚才新建的脚本如下图所示:(注意删除

 setContentView(R.layout.activity_main);

Unity调用Android_第16张图片

 

删除这一句

Unity调用Android_第17张图片

 Unity调用Android_第18张图片

复制默认app里面的 红框选中的内容到新建模块的对应位置,最后如下图所示。

Unity调用Android_第19张图片

Build-->Make如下图 BuildUnity调用Android_第20张图片

编译完成后如下图几个文件夹packaged-classes下的debug文件夹下有需要的classes文件。

packaged_res文件夹找到values。

 Unity调用Android_第21张图片

 最后找到AndroidManifest.xml文件。

 Unity调用Android_第22张图片

把以上三个文件按照下面的层级放入unity 

 Unity调用Android_第23张图片

 最后是unity代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class MessageTest : MonoBehaviour
{

    Text text;

    void Start()
    {   
        text= GameObject.Find("Text").GetComponent();       
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic("currentActivity");
        text.text = jo.Call("Show");
    }

}
 

Unity调用Android_第24张图片

 

修改unity包名和安卓清单包名一致。

Unity调用Android_第25张图片Unity调用Android_第26张图片

最后打包apk即可:效果如下

Unity调用Android_第27张图片

调用成功! 

你可能感兴趣的:(Unity调用Android)