| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Android Fragment展示Unity场景,android移动应用开发 -> 正文阅读 |
|
[游戏开发]Android Fragment展示Unity场景,android移动应用开发 |
sourceSets { main { //unity3D jniLibs.srcDirs = [‘libs’, ‘libs-sdk’] } } defaultConfig中添加 ndk { abiFilters “armeabi-v7a” } 在local.properties中配置ndk(替换你自己的ndk) ndk.dir=…/Android/sdk/ndk/xxxx Android架构中应当看到 创建UnityScene.java package com.example.androidproject.unity; import com.unity3d.player.UnityPlayer; public class UnityScene { public static UnityPlayer mUnityPlayer; public UnityScene(){ } } 创建一个空的Fragment,添加如下代码 private View playerView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment playerView = UnityScene.mUnityPlayer.getView(); //具体参数 跟自己公司Unity开发人员协商 //第一个参数是unity那边的挂载脚本名字 //第二个参数是 unity提供的方法名 //第三个参数是 自己要给unity传的值 // UnityScene.mUnityPlayer.UnitySendMessage(“Main Camera”,“Id”,“1”); return playerView; } 在MainAcivity的onCreate中添加 UnityScene.mUnityPlayer = new UnityPlayer(getApplicationContext()); getWindow().setFormat(PixelFormat.RGBX_8888); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .setReorderingAllowed(true) .add(R.id.fragment_container_view, UnityFragment.class, null) .commit(); } MainAcivity重写其他方法 @Override protected void onDestroy() { UnityScene.mUnityPlayer.quit(); super.onDestroy(); } @Override protected void onPause() { super.onPause(); UnityScene.mUnityPlayer.pause(); } @Override protected void onResume() { super.onResume(); UnityScene.mUnityPlayer.resume(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); UnityScene.mUni } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); UnityScene.mUnityPlayer.windowFocusChanged(hasFocus); } @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_MULTIPLE) return UnityScene.mUnityPlayer.injectEvent(event); return super.dispatchKeyEvent(event); } r.windowFocusChanged(hasFocus); } @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_MULTIPLE) return UnityScene.mUnityPlayer.injectEvent(event); return super.dispatchKeyEvent(event); } |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 18:30:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |