码迷,mamicode.com
首页 > 移动开发 > 详细

Android中导入Unity项目,界面点击事件失去焦点问题

时间:2014-09-30 14:48:19      阅读:372      评论:0      收藏:0      [点我收藏+]

标签:des   android   style   io   os   ar   for   sp   问题   

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项目,界面点击事件失去焦点问题

标签:des   android   style   io   os   ar   for   sp   问题   

原文地址:http://www.cnblogs.com/liangxieliang56/p/4001856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!