Androidstudio3.1和unity互相调用

1.新建Android lib工程New->New Module

2.选择Android Library

3.输入package name 这个要和unity的包名一致

4.在新建的工程下如图位置new 一个 EmptyActivity

 

5.在android工程下的libs文件里添加unity的jar包

Unity中jar有两个路径这个要取决于unity的打包方式

在unity中playersettings下面的otherSetting里的scripting Backend中有Mono和il2cpp两个选项对应的就Unity/Editor/Data/PlaybackEngines/AndroidPlayer/Variations下的两个文件夹,去里面找到对应需要的class.jar

6. 将class.jar复制到libs下面点击Add AsLibrary导入

7.在unity中新建AndroidPlugin脚本来调用java

public class AndroidPlugin : MonoBehaviour {

       private AndroidJavaObject m_androidObj = null;

       private void Awake()

       {

               AndroidJavaClass androidClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

               m_androidObj = androidClass.GetStatic("currentActivity");

       }

       void Start () 

        {

               if (m_androidObj != null)

               {

                    m_androidObj.Call("CallUnityMethod", "testString");

               }

        }

       public void UnityMethod(string str)

       {

           Debug.Log("android called unityMethodparam:" + str);

       }

  }

8.在unity场景中新建一个gameobject,并且把脚本挂在上面

Androidstudio3.1和unity互相调用_第1张图片

9.将Android工程里的activity修改一下

public class MainActivity extends UnityPlayerActivity {

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
   
}

    public void CallUnityMethod(String str)
   
{
        UnityPlayer.UnitySendMessage("Driver","UnityMethod",str);
   
}
}

这里的CallUnityMethod方面在unity的脚本中有调用,里面在调用“Driver”这个场景里gameObject上挂着的脚本里的对应函数

10.make一下Android工程

Androidstudio3.1和unity互相调用_第2张图片

 11.make完以后在build/intermediates下面的manifests里面有需要的manifest文件

Androidstudio3.1和unity互相调用_第3张图片

 

Packaged-class下面有class.jar文件

Androidstudio3.1和unity互相调用_第4张图片

Packaged-res/debug下面有layout和values文件

12.将需要的文件对应复制到unity里面

Androidstudio3.1和unity互相调用_第5张图片

注意这里的androidManifest需要修改一下

手动加一些属性,复制过来的不太全,请参照下面的

图标其他的也要自己加入

   package="com.sl.unity_android"

   android:versionCode="1"

   android:versionName="1.0" >

   

       android:minSdkVersion="19"

        android:targetSdkVersion="27"/>

   

         android:label="@string/app_name">

       

           

               

               

           

       

   

 13.最后unity打包的时候要选择这一项

Androidstudio3.1和unity互相调用_第6张图片

 

14.打出apk运行就能看到日志了

 


你可能感兴趣的:(unity,android)