在使用Eclipse之前,你要先安装一个Eclipse,至于安装Eclipse的过程就不在这里赘述了,大家不会百度。
1.新建一个安卓过程我使用的是Eclipse2021.06版本,其他版本的新建有所不同,但都大同小于,第一步:点击File->New->other
接下来会弹出一个弹窗,选择Android Application Project,点击Next
接着又是一个弹窗,在这个弹窗中设置工程的名字,包名,AndroidLevel等。我的设置如下,这里面设置比较重要的就是Package Name,这个要与Unity的包名保持一致。另外就是Theme,我这里的选择是None,剩下的选项选择之后在后面的操作是会报错。大家根据自己的情况自行选择。
接下来还是弹窗,这个弹窗主要是勾选Create activity,勾选了会在工程中为你创建一个MainActivity类
接下来还是一个弹窗,这个弹窗让你设置App的Icon,直接点击Next
接下来还是一个弹窗,这个弹窗是创建一个MainActivity类,可以自己修改这个类的名字,如果你在上面的选择中没有勾选Create Activity,那么你不会有这个弹窗 。
在这个android工程中我们主要操作的是 src文件夹和libs文件夹,如果创建的工程没有libs文件夹,我们自己创建一个libs文件夹
以上就是创建Android过程的步骤
2.导入jarlibs文件夹是用来放jar文件的,先导入Unity的class.jar文件,路径是Unity2018.4.18UnityEditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClasses
如果你在接第三方的sdk,需要把第三方sdk的jar文件也导进来。
导进去之后选中他们然后点击右键->BuildPath-> add to build path,至于add to build path的具体作用我推荐你看这篇文章 导入jar包add to build path的作用
在我们创建安卓工程的时候我们就已经创建了一个MainActivity类,我们先注释掉OnCreate方法中的setContentView,要不然会显示Android的默认布局文件,上面就一个 Hello World。Unity与Android交互的代码都可以写在这个类中,这个类要继承自UnityPlayerActivity类,当然android也可以调用Unity脚本里面的类。我们在MainActivity类里面写两个方法分别是 UnityToAndroidTest_1 和 UnityToAndroidTest_2。再写一个android调用Unity的方法 AndroidToUnityTest, 这个方法我们在onCreate()调用一下,这样我们在启动好app就会收到安卓发过来的消息。android向Unity发送消息只能使用UnityPlayer.UnitySendMessage这个方法,这个方法有三个参数,第一个参数为unity中的一个gameobject名称,第二个参数为这个gameobject身上捆绑的脚本中的一个方法,而第三参数事实上是这个对应方法上的参数。
经过上面的步骤我们在安卓工程上面的操作只剩下导出jar文件了,选中你的安卓工程,点击右键->Export
在弹出来的弹窗中选择Java->JAR file
我们只需要导出src文件夹中的MainActivity类,如果你有其他需要导出的文件也可以选择一起导出(在接第三的sdk时可能需要写多个类)。然后选择导出的路径
这样我们就导出了一个jar文件。
在这里说一个题外话,这个安卓工程使用的eclipse版本是Eclipse IDE for Java Developers - 2021-06,在这版本中你要是保存了你编辑的类或者其他的东西,那么eclipse会自动build这个project。点击上方的Project可以选中了build Automatically。如果你使用的版本没有这个功能,记得build一下这个project再进行导出。
建一个Unity工程,在Assets下新建Plugins/Android,把导出的jar文件放到Plugins/Android,如果你在接第三方的sdk那么需要把相关的jar文件放到Plugins/Android/libs,如果第三方sdk有asset、res文件夹把他们复制到Plugins/Android下, 注意:Unity的class.jar文件一定不需要放进去 。
6.编辑AndroidManifest文件另外还有一个AndroidManifest的xml文件,也需要放到Plugins/Android下,AndroidManifest文件的内容可以复制我们安卓工程中的AndroidManifest文件内容
在AndroidManifest文件中主要是注意一下 minSdkVersion 和targetSdkVersion,这两个值在我们创建安卓工程的时候就说过,在打包值要和Unity中的保持一致。另外在接第三方sdk是需要在AndroidManifest中需要添加一些权限,关于AndroidManifest的一些基础知识,我推荐看这篇文章 AndroidManifest基础知识
在Unty中我们创建一个空物体SDKManager,创建一个脚本AndroidToUnityTest挂载在上面和我们上面提到的UnityPlayer.UnitySendMessage方法里面的参数保持一致。然后我们在脚本里面写一下方法调用到安卓里面的方法。
在Unity中主要是注意两个固定写法,就是Start方法里面的jc和jo。这两个方法是固定写法。AndroidJavaClass和AndroidJavaObject在Unity的官方都有介绍,更多内容可以去官网看哦。
打包的时候我们需要设置包名、Icon和SdkVersion
这样可以测试了。
接sdk的过程是一个很细致的工作,其中的细节有很多。对于只熟悉Unity的同学来说这是一个极其难受的工作,你可能不熟悉安卓的一些东西,会遇见很多莫名其妙的错误,所以在sdk的时候一定要细心,遇见错误百度一下,按照别人的做法一步一步来。
另外再简单说一下怎么接第三方SDK,在上面的过程中我们详细说明了怎么新建安卓过程以及怎么怎么和Unity交互。如果是接第三方SDK,那么你只需要把第三方的SDK的jar文件放在libs文件下面就可以了,其他第三方SDK的asset、res、bin文件都可以不放在安卓工程里面。在写好MainActivity类之后导出jar。然后把第三SDK的asset、res、bin文件直接复制到Plugins/Android目录下就可以了。主要是打包的时候回遇到很多错误,这时候就是考验个人解决问题的能力了,我在接第三方的SDK的时候遇见了很多报错都是通过百度解决的,百度一下这个错误,看看是什么造成的,按照他们的方法试一下,一定要有耐心!!!



