目錄
•Script簡介
•Unity中可以使用c#和unityScript
•Unity中能掛在在GameObject上的都是component
•Script也可以作爲component
•Script必須繼承MonoBehaviour才能掛載到GameObject(create時候自動繼承)
•腳本掛載
•選中一個gameObject,在Inspector中點擊add Component 選中腳本即可.
•unityScript生命週期
•Awake—場景啓動時調用所有腳本的該方法
•Start—awake調用完之後,調用所有腳本是start方法
•Update—場景起來之後,每一幀調用一次
•Lastupdate—場景起來之後,每一幀調用一次
•Fixupdate—一幀調用幾次(一秒60幀,調用一次,一秒30幀,調用兩次,根據當前設備性能)
•調用Destory銷燬Gameobject
•Gameobject上掛載的腳本會調用onDestory
•Script通訊
•GameObject.Find找到其它GameObject
•gameObject.GetComponent找到掛在在這個gameObject上的其它component
•Build apk / export project
•Build setting
•File—build setting
•Add open scene—選擇platform—switch platform—build/export
•Build apk / export project
•Playsetting
•PackageName 小寫字母,必須和androidstudio中的工程包名一致
•MinMum API Level <=androidstudio中的版本
•Target API Level <=androidstudio中的版本
•export project
•Android Unity Project
•Unity 導出工程就是一個androidstudio工程
•可以直接導入androidstudio
•也可以自己new一個android project,把unity導出的工程作爲一個model加到android project中
以下把unity導出的工程稱之爲A, 自己新建的model稱之爲B
1.B工程的包名必須和A包名一致
2.把A中lib/*.jar複製到B工程的lib目錄
3.把A中的assets複製到B工程中
4.把A中的java文件複製到B中
5.A的混淆文件複製到B中
6.把A中的build.gradle放到B中
在主工程中繼承B中的java類,做一部分調整來顯示unity
•Android-Unity
Android call unity:
•UnityPlayer.UnitySendMessage("ButtonFor3dText","onCLickButton",string);
第一個參數爲gameobject的名字
第二個參數爲gameobject捆綁的腳本中的方法
第三個參數爲方法入參(沒參數可以瞎寫;有參數需要正確傳,只能傳一個參數,多參數只能拼接)
Unity call Android(mainActivity中的方法)
•AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
•AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
•jo.Call("showToast", "ssssssssssssssssssssssss");
UnityPlayerActivity的onCreate中有初始化com.unity3d.player.UnityPlayer
並且UnityPlay中有currentActivity靜態成員
showToast 這個方法在UnityPlayerActivity中或者UnityPlayerActivity的子類中
Unity call Android(普通類的中的靜態方法)
•AndroidJavaClass jc = new AndroidJavaClass(“com.second.project.TestClass”);//包類名
•jc.CallStatic("showLog", "CallAndroidScript", "showAndroidLog");
第一個參數方法名,後面的是可變參數列表
•相當於TestClass. showLog("CallAndroidScript","showAndroidLog");
Unity call Android(普通類的中的非靜態方法)
•AndroidJavaObject jo= new AndroidJavaObject("com.second.project.TestClass");
相當於new TestClass();
•jo.Call("showLogNoStatic", "CallAndroidScript", "showAndroidLogNoStatic");
相當於testClass. showLogNoStatic("CallAndroidScript", "showAndroidLogNoStatic");