unity呼び出しandroid関数

4609 ワード

    ,        AndroidManifest.xml,       Activity   。u3d            ,  ,          ,            。
    unity           ,           ?.apk           , win  win rar       。   apk    。             ,      apk,    AndroidMutiltool(    )  。       unity    apk  andoridMuting        (        )。
 
  
	       ,u3d        AndroidManfiest.xml。            AndroidManifest.xml ?   ,        Androidmanifest.xml           ,        ,    。
 
  

下面开始切入正题。

	unity    android      ?      :
		  、     Activity。(    AndroidManifest.xml  unity     Activity UnityPlayerNativeActivity)。         activity  ,       AndroidManifest.xml。 unity        java  ,    MainActivity  ,   jar ,  unity。
		  、  Activity   。unity      Activity,            Activity   activity  ,  jni  activity   。
	
AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic ("currentActivity");
	    ,        。
	1、  eclipse,  android  test001。    (package name)    。
	2、 unity  android classes.jar     test001 libs   。classes.jar  :   \Program Files (x86)\Unity\Editor\Data\PlaybackEngines\androidplayer\bin 。
		
	3、 classes.jar   java 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  。    com     。 classes   jar -cvf myclasses.jar com。
	7、 unity    test001, Assets         
		
		 myclasses.jar   bin 。 AndroidManifest.xml   Android   。 res     Android   。
	8、 Assets       c#  ,      。      
		
using UnityEngine;
using System.Collections;

public class test : MonoBehaviour {

	private AndroidJavaObject m_jo;
	// Use this for initialization
	void Start () {
		Debug.Log ("start***");
		AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
		m_jo = jc.GetStatic ("currentActivity");
		if (m_jo != null)
						Debug.Log (m_jo);
				else
						Debug.Log ("get static object fail ***");
	}
	
	// Update is called once per frame
	void Update () {
	
	}

	void OnGUI () {
		if (GUI.Button (new Rect (100, 100, 100, 50), "test_2")) {
			Debug.Log ("tset_2");
			Debug.Log( "the result is : " + m_jo.Call("times_2", 5) );
		}

		if (GUI.Button (new Rect (100, 200, 100, 50), "test_3")) {
			Debug.Log ("tset_3");
			Debug.Log( "the result is : " + m_jo.Call("times_3", 5) );
		}
	}
}
	9、    。
		   , BuildSetting -> Player Setting -> other Setting -> Bundle Identifier,
 
  
	10、    log。
		log     logcat  。  android sdk  platform-tools  ,    adb.exe。    ./adb.exe logcat     log   。
 
  
 
  
	               ( xml,myclasses.jar,res/)。    MainActivity.java      。http://download.csdn.net/detail/u012085988/6741421