Android Fragment中加载,嵌套Unity视图
来源:互联网 发布:电视视频通话软件 编辑:程序博客网 时间:2024/06/15 10:59
最近发现android 程序上面嵌套unity视图挺火 我目前公司做这个项目 也是属于android Fragment嵌套unity的视图 我把嵌套的步骤分享给大家 .. 以及与unity3D的交互也分享出来..
第一步 ;公司做unity开发的先将unity程序导出来(导成android项目)
具体如下图
把assets文件夹拷贝到自己项目的main文件夹下 与java文件夹同级(如下图)
然后把第一张截图(unity导出的文件夹)的libs文件夹下的{armeabi-v7a,x86,unity-classes}将这三个拷贝到自己项目的libs文件夹下(如下图)
下面开始就是代码了
第二步: 创建一个类
My_unity
public class My_unity { public static UnityPlayer mUnityPlayer; public My_unity() { }}
在主activity里配置 也就是自己想要嵌套的Fragment的主activity
在MainActivity onCreate方法里加入
My_unity.mUnityPlayer = new UnityPlayer(this); getWindow().setFormat(PixelFormat.RGBX_8888);
在其他生命周期里加入
@Override protected void onDestroy() { My_unity.mUnityPlayer.quit(); super.onDestroy(); } @Override protected void onPause() { super.onPause(); Constants.mUnityPlayer.pause(); } @Override protected void onResume() { super.onResume(); My_unity.mUnityPlayer.resume(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); My_unity.mUnityPlayer.configurationChanged(newConfig); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); My_unity.mUnityPlayer.windowFocusChanged(hasFocus); } @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_MULTIPLE) return My_unity.mUnityPlayer.injectEvent(event); return super.dispatchKeyEvent(event); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { return My_unity.mUnityPlayer.injectEvent(event); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return My_unity.mUnityPlayer.injectEvent(event); } @Override public boolean onTouchEvent(MotionEvent event) { return My_unity.mUnityPlayer.injectEvent(event); } public boolean onGenericMotionEvent(MotionEvent event) { return My_unity.mUnityPlayer.injectEvent(event); }
要展示Unity的Fragment的中写一下代码
View playerView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { // TODO Auto-generated method stub playerView = My_unity.mUnityPlayer.getView(); //具体参数 跟自己公司Unity开发人员协商 //第一个参数是unity那边的挂载脚本名字 //第二个参数是 unity提供的方法名 //第三个参数是 自己要给unity传的值 My_unity.mUnityPlayer.UnitySendMessage("Main Camera","Id","1"); return playerView; }
最后一步:
千万不要忘记 在app文件夹下的 build.gradle里配置 sourceSets
(sourceSets和 buildTypes 同级)
sourceSets { main { //unity3D jniLibs.srcDirs = ['libs', 'libs-sdk'] } }
这样运行 就ok了.. 下面我放一张效果图..(红线里面都是unity视图)
阅读全文
1 0
- Android Fragment中加载,嵌套Unity视图
- Android中Fragment嵌套Fragment,切换Fragment时不显示视图的原因及解决方法
- android 布局中Fragment嵌套Fragment
- Android Fragment中嵌套Fragment不显示
- 解决fragment中嵌套fragment加载切换的问题
- Fragment中嵌套Fragment
- Android中Fragment的嵌套问题
- Android开发中嵌套fragment的实现
- Android:fragment中嵌套viewpager,vierpager中有多个fragment
- Android底部导航栏界面(Fragment中嵌套Fragment)
- Android在Fragment中嵌套(添加)Fragment
- Android Fragment中嵌套Fragment,不显示view
- Android Fragment中嵌套Fragment,不显示view
- Android Fragment中嵌套Fragment,不显示view
- Android Fragment中嵌套Fragment,不显示view
- Android Fragment中嵌套Fragment,不显示view
- Fragment中控制嵌套Fragment
- Fragment中嵌套Fragment问题
- OPatch failed with error code 73
- c#映射数据库中表的实体类
- hdu 4345 Permutation(dp)
- css 中 强制不换行和超出省略
- scss中文注释
- Android Fragment中加载,嵌套Unity视图
- opencv--特征点
- subic项目总结(三)-修改quartz默认连接池
- 时间复杂度
- 奇袭(raid)(分治)
- 挤奶网格
- 如何申请百度API Key
- js-cookie方法封装
- Ubuntu16.04+Anaconda+caffe(Only CPU)