目录
•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");