unity嵌入安卓界面,如何显示状态
本文介绍了在Unity导出安卓应用时的配置方法,重点展示了如何通过Fragment嵌入Unity视图。代码实现了一个UnityContentFragment类,继承自Fragment,包含UnityPlayer实例的生命周期管理。在onResume()中设置了窗口显示模式,取消全屏并强制显示系统UI,确保Unity视图正确显示。同时处理了视图创建、暂停、恢复和销毁等生命周期事件,实现了Unity内
·
1、unity导出安卓时配置

2、安卓代码中,在onResume中设置
package com.honda.dic.settings.ui.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import androidx.fragment.app.Fragment;
import com.unity3d.player.UnityPlayer;
public class UnityContentFragment extends Fragment {
public static UnityPlayer mUnityPlayer;
View view;
public UnityContentFragment() {
// 必须有一个无参数构造函数
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mUnityPlayer = new UnityPlayer(requireActivity());
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = mUnityPlayer.getView();
if(view.getParent()!=null)
{
((ViewGroup)view.getParent()).removeAllViews();
}
view.getViewTreeObserver().addOnWindowFocusChangeListener((has)->mUnityPlayer.windowFocusChanged(has));
return view;
}
@Override
public void onResume() {
super.onResume();
mUnityPlayer.resume();
UnityPlayer.currentActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
UnityPlayer.currentActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
View decorView = UnityPlayer.currentActivity.getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}
@Override
public void onPause() {
super.onPause();
mUnityPlayer.pause();
}
@Override
public void onDestroy() {
super.onDestroy();
mUnityPlayer.quit();
}
}
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)