Unity与Android交互
Unity嵌入Android
Unity这边测试代码:
public class Test : MonoBehaviour {
public Transform cube;
public Button backToAndroid;
public Text t;
// Start is called before the first frame update
void Start() {
backToAndroid.onClick.AddListener(() => {
//t.text = "ShowToast";
//退出unity工程,返回android原生
//Application.Quit();//APP会闪退
using (AndroidJavaClass javaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
using (AndroidJavaObject javaObject = javaClass.GetStatic<AndroidJavaObject>("currentActivity")) {
t.text = "ShowToast";
javaObject.Call("unityFinish");
}
}
Invoke("Hide", 2);
});
}
void Hide() {
t.text = "";
}
void Update() {
cube.Rotate(Vector3.up * 20 * Time.deltaTime);
}
}
AndroidStudio测试代码
打开unity的Activity
//打开unity的Activity
Intent intent =new Intent(this, UnityPlayerActivity.class);
startActivity(intent);
图片
为了Android APP发布到模拟器或者解决闪退问题,也是一直不停试错,最后这篇文章解决了;
只要能解决你的问题,都是可以采用的。
闪退博客链接🔗
有的闪退问题是由于在unity设置的横竖屏切换也会导致闪退…
在unityLibrary/AndroidManifest.xml文件中配置代码
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:theme="@style/UnityThemeSelector"
android:screenOrientation="sensorLandscape"
android:launchMode="singleTask"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density"
android:resizeableActivity="false" android:hardwareAccelerated="false"
android:process=":unity"
android:value="true">
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data android:name="android.notch_support" android:value="true" />
</activity>
在unityLibrary/src/main/java/com.unity3d.player/UnityPlayerActivity中修改
// Quit Unity
@Override protected void onDestroy ()
{
mUnityPlayer.quit();
super.onDestroy();
}
//另外添加unityFinish方法
public void unityFinish(){
finish();
}
效果视频
UnityToAndroid
Android嵌入Unity
效果视频
AndroidToUnity
这篇博客正在根据项目开发进度,逐步完善中…
新的改变