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);




 }}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。