首页 > 代码库 > Android中导入Unity项目,界面点击事件失去焦点问题
Android中导入Unity项目,界面点击事件失去焦点问题
package com.t.t; \n\rimport com.unity3d.player.*; \n\rimport android.app.NativeActivity; \n\rimport android.content.res.Configuration; import android.graphics.PixelFormat; \n\rimport android.os.Bundle; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.Window; import android.view.WindowManager; public class UnityPlayerNativeActivity extends NativeActivity{protected UnityPlayer mUnityPlayer; // don‘t change the name of this variable; referenced from native code// Setup activity layout@Override protected void onCreate (Bundle savedInstanceState){requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); getWindow().takeSurface(null); setTheme(android.R.style.Theme_NoTitleBar_Fullscreen); getWindow().setFormat(PixelFormat.RGB_565); mUnityPlayer = new UnityPlayer(this); if (mUnityPlayer.getSettings ().getBoolean ("hide_status_bar", true))getWindow ().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(mUnityPlayer); mUnityPlayer.requestFocus(); }// Quit Unity@Override protected void onDestroy (){mUnityPlayer.quit(); super.onDestroy(); }// Pause Unity@Override protected void onPause(){super.onPause(); mUnityPlayer.pause(); }// Resume Unity@Override protected void onResume(){super.onResume(); mUnityPlayer.resume(); }// This ensures the layout will be correct.@Override public void onConfigurationChanged(Configuration newConfig){super.onConfigurationChanged(newConfig); mUnityPlayer.configurationChanged(newConfig); }// Notify Unity of the focus change.@Override public void onWindowFocusChanged(boolean hasFocus){super.onWindowFocusChanged(hasFocus); mUnityPlayer.windowFocusChanged(hasFocus); }// For some reason the multiple keyevent type is not supported by the ndk.// Force event injection by overriding dispatchKeyEvent().@Override public boolean dispatchKeyEvent(KeyEvent event){if (event.getAction() == KeyEvent.ACTION_MULTIPLE)return mUnityPlayer.injectEvent(event); return super.dispatchKeyEvent(event); }// Pass any events not handled by (unfocused) views straight to UnityPlayer@Override public boolean onKeyUp(int keyCode, KeyEvent event) { return mUnityPlayer.injectEvent(event); \n\r }@Override public boolean onKeyDown(int keyCode, KeyEvent event) { return mUnityPlayer.injectEvent(event); \n\r}@Override public boolean onTouchEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); }/*API12*/ public boolean onGenericMotionEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); }}
Android中导入Unity项目,界面点击事件失去焦点问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。