最近在給unity工程嘗試接入google play services插件,遇到了些問題,記錄一下。
之前在做android插件的時候,都是自己創建一個android工程,把生成的.class文件打包成jar包,然后把libs文件,AndroidManifest.xml文件一齊都放到Assets/Plungins/Android目錄下。在Unity里運行build就可以得到apk文件。而最開始遇到google play services時,突然不知道該怎么做了。最開始嘗試把google play services也打成jar包,按以前的方法來做,但是這條路行不通。嘗試了好幾次,在一次偶然的機會,看到別的android插件里有已經加入了google play services的例子。才發現是需要將google play services工程里的內容,整個都拷到unity工程中,在Assets/Plugins/Android/目錄下新建個google_play_services_lib目錄,將libs, res, src, .classpath, androidmanifes.xml, proguard, project.properties都拷到這里。
在做好上面一步之后,很開心又解決一個問題,點擊build,卻發現得到的不是apk而是紅色的error。。。
新的問題是因為在google_play_services_lib/res/目錄里的meta文件,在打包成apk的時候不被識別。metafile是unity提供用於version control使用的。我們使用的是tortoisesvn來管理工程的版本,就需要用到這些meta文件。但是現在這里卻出現了在不該出現的地方。
好吧,最后的解決辦法,在調用unity的編譯apk的方法(BuildPipeline.BuildPlayer)之前,調用
UnityEditor.EditorSettings.externalVersionControl = "Disabled"; AssetDatabase.Refresh();
自動編譯又可以正常運行了!