天天看點

[Unity3D]調用Android接口 實作内容簡要說明:

簡介

有一些手機功能,Unity沒有提供相應的接口,例如震動,例如不鎖屏,例如GPS,例如...

有太多的特殊功能Unity都沒有提供接口,這時候,我們就需要通過使用Android原生的ADT編輯器去編寫Java代碼,然後打包jar導入到Unity工程,然後通過Unity提供的調用Android接口的函數去調用jar包中的函數即可。

這裡我們就介紹一下使用Unity實作手機震動效果

1.     Android提供jar檔案,xml檔案,res目錄,libs目錄

2.     通過AndroidJavaClass去調用Android函數

另外,這些功能隻能在真機上運作!

1.下載下傳AndroidSDK(需要包含ADT編輯器的)

2      建立Android項目

菜機關置:File ->New->Android Application Project

建立過程中,隻有一下這個界面的内容需要更改,其他的使用預設的就行

[Unity3D]調用Android接口 實作内容簡要說明:

         生成後解決方案的目錄如圖

[Unity3D]調用Android接口 實作内容簡要說明:

         其中MainActivity就是我們需要編輯的java檔案了

3.     導入Unity相關jar

Jar目錄:unity的安裝路徑D:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin下的classes.jar

通過AddExternalArchives添加,如圖:

[Unity3D]調用Android接口 實作内容簡要說明:

4.     導入jar後,就可以開始編輯相關的函數了,打開MainActivity

[Unity3D]調用Android接口 實作内容簡要說明:

添加unityActivity,使MainActivity繼承UnityPlayerActivity,并把SetContentView函數删掉(不然到手機上啟動程式的時候就會隻看到一句HelloWorld),這裡用一個比較函數Max作為例子,有參數,有傳回值

5.     到這裡,需要的函數已經寫完,再修改一下xml檔案

Xml檔案在工程檔案目錄下,叫AndroidManifest.xml

[Unity3D]調用Android接口 實作内容簡要說明:

6.     接下來到處jar包

[Unity3D]調用Android接口 實作内容簡要說明:
[Unity3D]調用Android接口 實作内容簡要說明:

點選Export後選擇Java目錄下的Jar file,選擇好路徑之後按預設選項去到處jar檔案即可

7.     到這裡Android部分結束了

1.     設定PlayerSetting,要與Android的package對應上

[Unity3D]調用Android接口 實作内容簡要說明:

2.     在Assets目錄下添加Plugins\Android目錄,把Android的jar檔案,res檔案夾,libs檔案夾,xml檔案放入該目錄

[Unity3D]調用Android接口 實作内容簡要說明:

注意:

A:libs目錄下面不要有unity的安裝路徑D:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin下的classes.jar(要删除unity的classes.jar檔案)

[Unity3D]調用Android接口 實作内容簡要說明:

B:如果build時報Failed to re-package resources.

 這個問題是因為Android後面SDK版本中使用了新的主題Theme,而我們在編譯的SDK中可能包含,這裡簡單粗暴地方式是将values、values-11、values-14以及AndroidMenifest檔案中有關主題Theme的定義和使用全都去掉,因為我們在這裡建立的Android工程本身是與Unity層通信使用的,定義和使用Theme意義并不大,是以可以去掉;另外我們可以将其是以來的庫引入或者使用最新的SDK去編譯它。

C:如果build時報can't add script component because the script class cannot be found

[Unity3D]調用Android接口 實作内容簡要說明:
[Unity3D]調用Android接口 實作内容簡要說明:

3.     調用相關函數

[Unity3D]調用Android接口 實作内容簡要說明:

(注:初步了解這裡的參數之是以填”com.unity3d.player.UnityPlayer”和”currentActivity”,是因為在生成jar檔案的時候,已經指定了MainActivityclass繼承UnityPlayerActivity,也在XML指定了MainActivity是Main class)

本文轉自wanqi部落格園部落格,原文連結:http://www.cnblogs.com/wanqieddy/p/4447594.html,如需轉載請自行聯系原作者

繼續閱讀