乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      unity 調(diào)用android函數(shù)

       kiki的號 2017-04-05
      我們知道,安卓工程都有一個AndroidManifest.xml,里面指定了啟動Activity等信息。u3d里我們并沒有給出這個文件,可見,一定是它在編譯的時候,自動為我們添加了這些文件。
      如何知道unity還為我們添加了什么文件,每個文件中有什么內(nèi)容呢?.apk文件其實就是一個壓縮包,在win上用win rar就能打開這個包。下圖是apk包的內(nèi)容。若要知道每個文件的具體內(nèi)容,就必須解析出apk,可以借助AndroidMutiltool(點擊下載)工具。這里提供了一個unity 導(dǎo)出的apk和用andoridMuting工具解析出的文件(點擊此處下載文件)。
      
      
      	從上圖可以看到,u3d為我們添加了一個AndroidManfiest.xml。那么如何使用我們自定義的AndroidManifest.xml呢?很簡單,只需要將自定義的Androidmanifest.xml放到指定的位置就可以了,至于具體什么位置,待會再說。
      
      

      下面開始切入正題。

      	unity如何調(diào)用android工程中的函數(shù)?思路是這樣的:
      		第一、自定義啟動Activity。(從上面的AndroidManifest.xml可知unity默認的啟動Activity是UnityPlayerNativeActivity)。若要此工程從自定義activity啟動,就需要自定義的AndroidManifest.xml。但unity不能直接編譯執(zhí)行java文件,所以要把MainActivity編譯,打包成jar庫,引入unity。
      		第二、調(diào)用Activity中函數(shù)。unity全程只有一個Activity,所以我們可以通過獲取當(dāng)前Activity來獲取activity對象,通過jni調(diào)用activity的函數(shù)。
      	
      [csharp] view plain copy
      1. AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");  
      2. AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject> ("currentActivity");  

      	有了思路,下面開始動手實現(xiàn)。
      	1、打開eclipse,新建android工程test001。記住包名(package name)后面會用。
      	2、將unity下的android庫classes.jar復(fù)制到工程test001的libs目錄下。classes.jar路徑:安裝盤\Program Files (x86)\Unity\Editor\Data\PlaybackEngines\androidplayer\bin下。
      		
      	3、將classes.jar添加到j(luò)ava build path。
      		方法有兩種。①右鍵classes.jar -> build path -> add to build path。②工程->屬性->java build path -> libraries -> addJars
      		
      	4、修改MainActivity.java。
      		注意:setContentView(...)這句如果不注釋掉,你看到的將會是android工程的hello world界面。
      		
      	5、編譯工程。
      	6、打包.class文件。 
      		進入工程目錄/bin/classes。里面有一個com文件下,該文件夾里存了多個.class文件?,F(xiàn)在要將com文件夾打包。在classes下執(zhí)行jar -cvf myclasses.jar com。
      	7、用unity新建項目test001,在Assets目錄中新建下列目錄
      		
      		myclasses.jar復(fù)制到bin下。將AndroidManifest.xml復(fù)制到Android目錄下。將res目錄復(fù)制到Android目錄下。
      	8、在Assets目錄下新建一個c#腳本,關(guān)聯(lián)到主相機。腳本內(nèi)容如下
      		
      [csharp] view plain copy
      1. using UnityEngine;  
      2. using System.Collections;  
      3.   
      4. public class test : MonoBehaviour {  
      5.   
      6.     private AndroidJavaObject m_jo;  
      7.     // Use this for initialization  
      8.     void Start () {  
      9.         Debug.Log ("start***");  
      10.         AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");  
      11.         m_jo = jc.GetStatic<AndroidJavaObject> ("currentActivity");  
      12.         if (m_jo != null)  
      13.                         Debug.Log (m_jo);  
      14.                 else  
      15.                         Debug.Log ("get static object fail ***");  
      16.     }  
      17.       
      18.     // Update is called once per frame  
      19.     void Update () {  
      20.       
      21.     }  
      22.   
      23.     void OnGUI () {  
      24.         if (GUI.Button (new Rect (100, 100, 100, 50), "test_2")) {  
      25.             Debug.Log ("tset_2");  
      26.             Debug.Log( "the result is : " + m_jo.Call<int>("times_2", 5) );  
      27.         }  
      28.   
      29.         if (GUI.Button (new Rect (100, 200, 100, 50), "test_3")) {  
      30.             Debug.Log ("tset_3");  
      31.             Debug.Log( "the result is : " + m_jo.Call<int>("times_3", 5) );  
      32.         }  
      33.     }  
      34. }  

      	9、編譯運行。
      		編譯時,點BuildSetting -> Player Setting -> other Setting -> Bundle Identifier,將此項值設(shè)置為上面第①條提到的包名
      
      
      	10、查看輸出log。
      		log信息要通過logcat查看。進入android sdk下的platform-tools目錄,里邊有個adb.exe。執(zhí)行命令./adb.exe logcat就可以看到log信息了。
      
      
      
      
      	我上傳了這個工程需要用到的文件(如xml,myclasses.jar,res/)。還包含了MainActivity.java文件便于理解。http://download.csdn.net/detail/u012085988/6741421

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多