unity android相互調用


簡介

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

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

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

 

 

 

實現內容簡要說明:

 

1.     Android提供jar文件,xml文件,res目錄,libs目錄

2.     通過AndroidJavaClass去調用Android函數

 

另外,這些功能只能在真機上運行!

 

具體實現:

Android部分

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

官方下載連接:http://developer.android.com/sdk/index.html

 

 

2      創建Android項目

菜單位置:File ->New->Android Application Project

創建過程中,只有一下這個界面的內容需要更改,其他的使用默認的就行

 

 

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

         

         其中MainActivity就是我們需要編輯的java文件了

 

3.     導入Unity相關jar

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

通過AddExternalArchives添加,如圖:

 

 

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

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

5.     到這里,需要的函數已經寫完,再修改一下xml文件

Xml文件在工程文件目錄下,叫AndroidManifest.xml

6.     接下來到處jar包

點擊Export后選擇Java目錄下的Jar file,選擇好路徑之后按默認選項去到處jar文件即可

 

7.     到這里Android部分結束了

 

 

Unity部分

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

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

注意:

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

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

 

 

 

3.     調用相關函數

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

 

unity android相互調用http://blog.csdn.net/crazy1235/article/details/46733221


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM