前文:
unity3d項目需要調(diào)用到android原生的方法,而unity3d不提供這些類型的api饥瓷,所以就需要android原生代碼的支持了剥纷,類似,手機震動之類的動效呢铆,或者類似第三方sdk的支付等。
推薦android開發(fā)人員使用eclipse而不是使用androidStudio來進(jìn)行jar的打包開發(fā)蹲缠,因為eclipse打包jar更加方便棺克,而相對AndroidStudio稍加繁瑣一點,當(dāng)然线定,命令行打包jar的大牛請忽略這點娜谊。
思路:
unity3d需要android的支持,所以我們android需要封裝好方法斤讥,處理好一些sdk的調(diào)用羅輯(初始化纱皆,注冊清單文件,權(quán)限配給等等)芭商,然后用類似寫接口的形式派草,暴露出一些接口供unity3d調(diào)用。而android需要打包成jar铛楣,提供給unity3d 以下資源文件:libs近迁,res,AndroidManifest.xml 簸州。這些東西會在unity3d的android目錄下被開發(fā)者手動創(chuàng)建一個類似android項目結(jié)構(gòu)的文件夾:該目錄下有:libs鉴竭,res ,AndroidManifest.xml 值得注意的是,這三份是從android的項目拷貝過去的岸浑。此外還有一個bin目錄搏存,該目錄下存放著android原生代碼打包的jar包(如何打包,該打包什么矢洲?我們下面會講到璧眠,這個絕對是一個坑)
項目環(huán)境搭建:
新建eclipse的android項目工程: 注意點
- 包名請與unity3d項目包名保持一致
- 如無特殊要求,項目要求minSdkVersion 為4.0.3或以上,避免導(dǎo)入V7包
- 讓unity3d開發(fā)人員提供classes.jar
- 項目主頁面蛆橡,也就是寫方法供unity3D調(diào)用的類舌界,必須繼承UnityPlayerActivity類,生命周期oncreate()只實現(xiàn) super.onCreate(savedInstanceState);泰演,請注意不要實現(xiàn)setcontentView()
- 清單文件需要做如下配置:
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<uses-feature android:glEsVersion="0x00020000" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.hardware.touchscreen.multitouch"
android:required="false" />
<uses-feature
android:name="android.hardware.touchscreen.multitouch.distinct"
android:required="false" />
該方法類需要加入<mate-data>節(jié)點
<activity
android:name="com.xxxxx.xxx.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
呻拌、
</intent-filter>
<meta-data
android:name="unityplayer.UnityActivity"
android:value="true" />
</activity>
具體實現(xiàn)
因為還在開發(fā)階段,這個代碼不貼睦焕,以后更新藐握。
如何打包
- 確保項目代碼無誤后,右鍵項目垃喊,選擇export
-
出現(xiàn)如圖猾普,點擊“JAR file”
項目打包 -
不要選擇任何文件!不要選擇任何文件本谜!不要選擇任何文件初家!單獨選中src目錄!是的乌助,我們只需要src目錄溜在,其他東西完全不要!
打包注意事項 -
右鍵finish打包他托,然后找到eclipse項目工程目錄掖肋,選中以下三個文件打包并發(fā)送給unity3D開發(fā)人員
需要提供給unity3D的資源