Unity3D調用android方法(非插件方式)


關於Unity3Dproject與androidproject的轉換與合並,請參考我的另外一篇博客。假設你對Unity3Dproject增加到androidproject的過程不熟悉。也請先看完以下這篇博客:

android與Unity3D交互,fragment顯示unity3d視圖。

以下,我們來說說本博客的終端,Unity3D調用android的方法:

1.首先,在網絡上大家能夠看到非常多把android project打包,然后以插件的方式,放入Unity3D工程中來調用的方式,這樣的方式,我不做評論,可是非常麻煩,所以我也沒有進行嘗試。大家有興趣能夠到網絡上搜索一下看看。

2.假設講Unity3D的project導出為android project然后進行再次開發的過程中。須要Unity3D調用android的方法,這個時候,再使用1中的方法。顯然是不合適的。


那么我們要怎么樣來做呢?分為以下幾部分:

1.在初始化UnityPlayer的Activity中加入方法,例如以下:

/**
	 * 測試Unity調用Android的方法
	 */
	public void testMethod(String param){
		System.out.println("參數為:"+param);
	}

對於提供的方法,不能夠進行UI操作,由於Unity3D對於android的UI線程來說,僅僅是個子線程。假設要進行UI操作,能夠使用Handler發消息。


2.在Unityproject中。利用c#文件來書寫,Unity調用的代碼:

public static void ActivateShareImage(string content)
    {
        if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
            _PressButton3(content);
        }
        else if (Application.platform == RuntimePlatform.Android)
        {
            UISystem.Console("test method!");

            AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
            jo.Call("testMethod", "unity");
        }
        else
        { 
        
        }
    }
3,假設你已經有android項目了,那么就把新修改的Unity3D的項目導出為android project的,把新導出的project中的assets的目錄,替換掉之前老的project中的,這樣做的目的是更換Unity的修改,假設修改了其它的東西,也是這樣更換的。可是假設你的assets目錄下還有其它資源。請保留。

假設。你沒有android項目,那么就把Unity3D的項目導出為android的project項目使用。


4.對於AndroidJavaClass這個類。以及它提供的方法,大家能夠參考以下的站點:

AndroidJavaClass 安卓Java類


這樣,就能夠完畢調用了。根本就不須要使用插件。關於android向Unity3D發送消息,日后會發博客敘述。


免責聲明!

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



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