Android中导入Unity项目,界面点击事件失去焦点问题
2014-09-29 16:31
751 查看
====================问题描述====================
1.将Unity中的项目导出成Android项目,再放入到Eclipse中,然后新建一个Android项目,以Unity那个项目为类库。
2.然后我开始写一个xml布局,布局中间是一个LinearLayout,上下分别是Button。LinearLayout用来放Unity里的内容。
现在遇到的问题是如果再Unity画面加载完成之前,按钮的点击事件是可以执行的。当Unity加载完成以后,按钮就失效了。根本点不了。是因为Unity盖住了整个屏幕还是占据了整个焦点?现在不知道是应该在Unity代码里面改还是在Android里面改,有大神知道么?
下面附上代码:
====================解决方案1====================
Unity盖住了整个屏幕???
按钮可见能点击不?
1.将Unity中的项目导出成Android项目,再放入到Eclipse中,然后新建一个Android项目,以Unity那个项目为类库。
2.然后我开始写一个xml布局,布局中间是一个LinearLayout,上下分别是Button。LinearLayout用来放Unity里的内容。
现在遇到的问题是如果再Unity画面加载完成之前,按钮的点击事件是可以执行的。当Unity加载完成以后,按钮就失效了。根本点不了。是因为Unity盖住了整个屏幕还是占据了整个焦点?现在不知道是应该在Unity代码里面改还是在Android里面改,有大神知道么?
下面附上代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置布局文件 setContentView(R.layout.test); //mUnityPlayer为一个全局的引用变量,而且已 经在父类中设置好了,所以直接拿来用就可以了 View playerView = mUnityPlayer.getView(); //将Unity的视图添加到我们为其准备的父容器中 unity = (LinearLayout) findViewById(R.id.unity); playerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "222222", Toast.LENGTH_LONG).show(); } }); unity.addView(playerView); round = (Button) findViewById(R.id.trun_round); round.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub UnityPlayer.UnitySendMessage("shouchengchangmaobing", "Answer", "3"); } }); left = (Button) findViewById(R.id.left); left.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub UnityPlayer.UnitySendMessage("shouchengchangmaobing", "Answer", "1"); } }); } }
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); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return mUnityPlayer.injectEvent(event); } @Override public boolean onTouchEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); } /*API12*/ public boolean onGenericMotionEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); } }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/trun_round" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:text="around" /> <LinearLayout android:id="@+id/unity" android:layout_width="100dp" android:layout_height="200dp" android:layout_below="@+id/trun_round" android:background="#ccffcc" android:orientation="horizontal" > </LinearLayout> <Button android:id="@+id/left" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="left" /> </RelativeLayout>
====================解决方案1====================
Unity盖住了整个屏幕???
按钮可见能点击不?
相关文章推荐
- Android中导入Unity项目,界面点击事件失去焦点问题
- Android中导入Unity项目,界面点击事件失去焦点问题
- Android中导入Unity项目,界面点击事件失去焦点问题
- Android中导入Unity项目,界面点击事件失去焦点问题
- Android中导入Unity项目,界面点击事件失去焦点问题
- Android中导入Unity项目,界面点击事件失去焦点问题
- Android中导入Unity项目,界面点击事件失去焦点问题
- Android中导入Unity项目,界面点击事件失去焦点问题
- 解决Js先触发失去焦点事件再执行点击事件的问题
- Unity导出的Android项目按钮无法点击问题
- Android--焦点问题-ListView中item及其子控件无法响应点击事件
- 关于Android中Dialog点击屏幕外失去焦点消失的问题
- AndroidTV/机顶盒 ListView获取焦点与点击事件问题处理方案
- windows phone中点击ApplicatonBarIconButton不能使TextBox失去焦点的问题(涉及到Twoway绑定)
- Android项目导入问题.Your project contains error(s),please fix them before running your application
- android导入项目常见问题解决
- 通过SVN导入两个项目(从java移植到andorid)时,一个android,一个普通java项目时可能遇到的两个问题
- [导入]Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]
- Eclipse导入Android项目 Eclipse常见错误 中文乱码问题
- 解决Android项目导入到Eclipse时@Override错误问题