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<AndroidJavaObject>("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,并且把脚本挂在上面

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工程

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

 

Packaged-class下面有class.jar文件

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

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

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

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

图标其他的也要自己加入

<?xml version="1.0"encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

   package="com.sl.unity_android"

   android:versionCode="1"

   android:versionName="1.0" >

   <uses-sdk

       android:minSdkVersion="19"

        android:targetSdkVersion="27"/>

   <application

         android:label="@string/app_name">

       <activity android:name=".MainActivity">

           <intent-filter>

                <actionandroid:name="android.intent.action.MAIN" />

                <categoryandroid:name="android.intent.category.LAUNCHER" />

           </intent-filter>

       </activity>

   </application>

</manifest>

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

 

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

 


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值