============问题描述============

1.将Unity中的项目导出成Android项目,再放入到Eclipse中,然后新建一个Android项目,以Unity那个项目为类库。
2.然后我开始写一个xml布局,布局中间是一个LinearLayout,上下分别是Button。LinearLayout用来放Unity里的内容。
现在遇到的问题是如果再Unity画面加载完成之前,按钮的点击事件是可以执行的。当Unity加载完成以后,按钮就失效了。根本点不了。是因为Unity盖住了整个屏幕还是占据了整个焦点?现在不知道是应该在Unity代码里面改还是在Android里面改,有大神知道么?
下面附上代码:

package com.t.t;import com.unity3d.player.UnityPlayer;import com.unity3d.player.UnityPlayerNativeActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.Toast;public class MainActivity extends UnityPlayerNativeActivity{private LinearLayout unity;private Button round,right,left;private String Tag="Unity3D";@Overrideprotected 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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "222222", Toast.LENGTH_LONG).show();}});unity.addView(playerView);round = (Button) findViewById(R.id.trun_round);round.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubUnityPlayer.UnitySendMessage("shouchengchangmaobing", "Answer", "3");}});left = (Button) findViewById(R.id.left);left.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubUnityPlayer.UnitySendMessage("shouchengchangmaobing", "Answer", "1");}});}}
package com.t.t;import com.unity3d.player.*;import android.app.NativeActivity;import android.content.res.Configuration;import android.graphics.PixelFormat;import 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); }@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); }}
<?xml version="1.0" encoding="utf-8"?>  <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" />  <LinearLayoutandroid: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盖住了整个屏幕???
按钮可见能点击不?

转载于:https://www.cnblogs.com/lianxu61/p/4030394.html

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

  1. Android Studio导入Eclipse项目的两种方法

    Android Studio导入Eclipse项目有两种方法,一种是直接把Eclipse项目导入Android Studio,另一种是在Eclipse项目里面进行转换,然后再导入Android Stu ...

  2. android中导入数据

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666).QQ技术交流群(183198395). 接着android 中导出数据 一文,下面介绍在android中导入数 ...

  3. 在RadASM中导入masm32项目和win32汇编odbc示例

    以下以罗云琳<Win32汇编程序设计>第18章odbc例子为例:在RadASM中导入该项目,并为该项目略添加功能: 一 masm32 项目导入radasm 先看一下radasm示例项目的结 ...

  4. android 部分区域点击,Android编程实现ListView中item部分区域添加点击事件功能

    本文实例讲述了Android编程实现ListView中item部分区域添加点击事件功能.分享给大家供大家参考,具体如下: 需求如题目:Android listview中item部分区域添加点击事件,在 ...

  5. Eclipse中导入Maven项目后没有run on server

    场景 在Eclipse中导入Maven项目后,想要运行时,却没有run on server 解决 右击项目--properties--project facets--勾选Dynamic Web Mod ...

  6. javaWeb项目 IDEA中导入eclipes项目的方法。maven多模块项目(父子模块)与普通的web项目导入

    IDEA中导入eclipes项目 1.普通的Web项目(没有pom文件 )导入方式在下方地址 https://blog.csdn.net/oLevin/article/details/81018316 ...

  7. idea中导入git项目时出现:Warning: Permanently added‘github.com’ (RSA) to the list of known hosts......

    首次从idea上导入git项目时出现了,下图所示的错误: 解决方法: 打开 git bash 输入cd C:,回车 再输入cat ~/.ssh/id_rsa.pub,回车 输入ssh-keygen 然 ...

  8. Android Studio导入他人项目注意的一些地方

    1.我的大部分项目按照这位博主说的操作后,一般打开就没问题了. (93条消息) Android Studio导入别人项目需要更改的配置项_苦逼的程序猿2015的博客-CSDN博客_android st ...

  9. Android代码模拟物理、屏幕点击事件

    一.应用中模拟物理和屏幕点击事件 例如,模拟对某个view的点击事件 private void simulateClick(View view, float x, float y) {long dow ...

最新文章

  1. spring 源码_spring源码系列(一)——spring循环引用
  2. 你所不知到的C++ 系列
  3. python选课系统代码_python模拟选课系统
  4. 爱情才是程序员的第一生产力
  5. redis入门——服务器篇
  6. CSS 分组 和 嵌套 选择器
  7. 玩转Go语言之数据类型转换
  8. iOS开发UITableViewCell右边的原生图标设置
  9. 热烈祝贺人生第一篇论文发表成功
  10. 计算机网络安全题库,2020年计算机网络安全与管理信息题库10月更新
  11. 手把手教你如何进行内网渗透
  12. 椰树集团引爆互联网背后的“流量秘密”
  13. iOS中微信语音动画
  14. [EMNLP 2022] VIRT: Improving Representation-based Text Matching via Virtual Interaction
  15. D. Good Triple
  16. clover安装黑苹果10.15.3常见问题集合
  17. 软件测试职业规划 (面试题)
  18. 用计算机弹我的一个道故朋友,我的一个道姑朋友
  19. mysql ddl ddm_数据库ddl ddm语句
  20. 软件质量测试中的健壮性测试是什么?一文和你说

热门文章

  1. R语言的常用函数速查
  2. html网页设计课程的思维导图,UI设计初级教程学哪些?课程大纲和思维导图分享给你!...
  3. 奥特曼传奇英雄存档丢了怎么找回_热血传奇复古传奇:传奇游戏手机版竟然比端游还火爆?你觉得呢?...
  4. c语言if怎么结束_07if与循环案例超经典C语言
  5. “21天好习惯”第一期-18
  6. python爬取b站403_使用Python爬取B站全站视频信息
  7. cpu爆了怎么排查和处理_CPU飙高,系统性能问题如何排查?
  8. PAT (Basic Level) Practice1011 A+B 和 C
  9. 开源字符处理类库:CharString类 拆分自自己研发的web服务器中的类库
  10. Windows核心编程_异型窗口