当前位置: 首页 > news >正文

佛山市门户网站建设公司崂山网站建设

佛山市门户网站建设公司,崂山网站建设,中国十大奇迹工程,wordpress viewsUnity与Android混合开发 为什么使用Flutter构建 Flutter 是 Google 的开源工具包#xff0c;用于从单个代码库为移动、Web、桌面和嵌入式设备构建应用程序#xff08;一套代码跨平台构建app是它最大的优点#xff09;#xff0c;并且可以构建高性能、稳定和丰富UI的应用程…Unity与Android混合开发 为什么使用Flutter构建 Flutter 是 Google 的开源工具包用于从单个代码库为移动、Web、桌面和嵌入式设备构建应用程序一套代码跨平台构建app是它最大的优点并且可以构建高性能、稳定和丰富UI的应用程序。 Flutter向Unity发送消息 通过unityWidgetController.posMessage来发送一个string参数为GameObject name和方法名。 Unity向Flutter发送消息 Unity通过AndroidJavaClass获取jar实例并调用其中某个方法。 AndroidJavaClass jc new AndroidJavaClass(com.xraph.plugin.flutter_unity_widget.UnityPlayerUtils); jc.CallStatic(onUnityMessage, message);Flutter通过onUnityMessage接收来自unity传来的message。 Unity向Andorid发送消息 Unity通过AndroidJavaClass获取jar实例并调用其中某个方法。 public static void CallAndroidMethod(string methodName, string str) {using var clsUnityPlayer new AndroidJavaClass(com.unity3d.player.UnityPlayer); //获取UnityPlayerusing var objActivity clsUnityPlayer.GetStaticAndroidJavaObject(currentActivity); //获取当前activityobjActivity.Call(methodName, str); //调用实例中的方法 }Unity怎么导出给Andorid使用的 在Flutter中嵌入Unity3D需将Unity项目导出为Android Library该包可以添加到 Flutter 应用程序的原生代码库中。 从 Unity 构建 Gradle 项目时无需进行任何其他操作。Unity 生成的每个Android Gradle项目中都具有以下结构 unityLibrary 模块中的一个库部分可以集成到其他任何 Gradle 项目中。这包含 Unity runtime和Player数据。launcher 模块中的thin launcher部分其中包含应用程序的名称及其图标。这是一个可启动 Unity 的简单 Android 应用程序。您可以将此模块替换为自己的应用程序。 要将 Unity 集成到另一个 Android Gradle 项目中必须通过 settings.gradle 文件将生成的 Android Gradle 项目的 unityLibrary 模块包含在您的 Android Unity 项目中。 Shader 计算机图像渲染流水线 应用阶段。应用主导的由CPU实现。1. 准备好场景数据。2. 剔除不可见物体。3. 设置模型的渲染状态。 分为3个阶段1. 将数据加载到显存中。2. 设置渲染状态。3. 调用Draw callCPU- GPU)。 几何阶段。处理与要绘制的几何相关的事情。通常在GPU上实现。将顶点坐标变换到屏幕空间中。 光栅化阶段。产生屏幕上的像素渲染出最终图像。逐像素处理。 GPU 流水线 几何阶段和光栅化阶段。 顶点着色器 顶点着色器完全可编程的实现顶点的空间变换坐标变换从模型空间转换为齐次裁剪空间、顶点着色逐顶点光照。 输入来自于CPU处理单位是顶点。 片元着色器 可编程的。逐片元像素操作。决定每个片元的可见性和颜色的混合。 模板测试 GPU会读取模版缓冲区中该片元位置的模版值然后将该值和读取到的参考值进行比较。 深度测试 GPU把该片元的深度值和已经存在于深度缓冲区中的深度值进行比较 性能优化 如何减少Draw Call 把很多小的DrawCall合并成一个大的Draw Call即合批处理。比如那些静态的物体更适合批处理也可以对动态物体进行批处理。 此外应该注意 1避免使用大量很小的网格如果要使用的话考虑是否可以合并它们。我们使用了MeshBaker插件来合并mesh和模型贴图 2避免使用过多的材质尽量在不同网格之间共用一个材质。 我们在实际开发过程中可使用Frame Debugger来发现不合批原因从而对症进行优化。 渲染Rendering优化 看下pass的次数与set pass 次数, pass 次数比如阴影这些都会导致多次pass,多光源这些会导致多次pass, 我们可以通过定制渲染管线,优化shader代码, 优化光照计算等从Shader渲染管线级别来做好渲染优化还有LOD优化。 物理引擎优化 减少物理引擎的迭代参数,减少计算量减少物理刚体的数目。 如何减少GC GC可以保证内存安全而不用担心内存未释放而导致的内存泄漏但GC需要很大量的CPU时间不合理的GC会影响到性能。 避免分配临时数据可使用对象池重用Object避免频繁的Create和Destroy。字符串连接使用StringBuilder避免在函数中创建Array而是作为参数传进去去改变它的值避免在Update中每次创建List对象字典或Array)而是重用它们。 资源如何优化 纹理图片 降低最大分辨率采用二次幂压缩格式制作纹理图集取消Read/Write Enabled禁用多余的Mip Map 模型 美术规范可以进行优化我们可以在导入时禁用Read/Write Enables设置一些Mesh Compression或者Optimize Mesh。 使用LOD多层次细节 可使用服务器上部署资源包来实现打空包机制进一步减少包体体积。 资源部署与热更新 可使用AssetBundle, Addressable, YooAsset来组织和管理资源资源可以打补丁包传输到CDN服务器这样就可以进行资源的热更新而无需重新build程序。 Addressable 资源例如预制体被标记为“可寻址”后就会为该资源生成一个全局地址系统可在任何地方通过该全局地址定位该资源。该地址是可寻址对象系统与资产位置关联的字符串标识符无论该资产是驻留在您构建的游戏本地还是远程CDN网络上。如果资产位置发生更改也无需重写代码。并且在需要加载资源的时候才会将资源加载进内存。
http://www.zqtcl.cn/news/798502/

相关文章:

  • 分栏型网站服装设计网站模板
  • 建设网站备案与不备案区别企业网站怎么做排名
  • php mysql的网站开发html网站制作答辩ppt
  • 网站制作有名 乐云践新专家网页制作公司需要什么资质
  • 织梦怎么用框架实现在浏览器的地址栏只显示网站的域名而不显示出文件名电脑网站模板
  • 北京网络营销网站品牌营销增长公司哪家好
  • 网站反链有好处吗稷山网站建设
  • 廊坊网站群发关键词怎么在百度上推广自己的公司信息
  • 网站开发 沈阳免费模板建站
  • 商业性质网站建设步骤wordpress电影网盘
  • 网站的外部推广成都房产网官网
  • 深圳网站建设创想营销北京土巴兔全包装修价格表
  • 怎么发布php网站邯郸建设网站制作
  • 手机网站做多宽的图片wordpress顶部导航栏怎么创建
  • 如何做招聘网站的数据分析安徽黄山旅游攻略
  • 2022建站市场国际新闻直播
  • 茗哥网站建设装饰公司网站规划方案
  • 北京天津网站建设公司做平台网站要多久
  • 做我女朋友的表白句的网站做seo_教你如何选择网站关键词
  • 如何对网站用户分析徐州网站制作如何定位
  • 网站定制生成器龙岗网站设计讯息
  • 镇江市建设工程网站蜘蛛爬取网站
  • 个人备案网站可以做电影站吗微信做的地方门户网站
  • 网站上传根目录美点网络公司网站
  • 长春微信做网站网站开发和设计如何合作
  • 江门网站制作报价买网站不给我备案
  • 太原百度网站快速优化网站 后台 数据 下载
  • 某网站开发项目进度表天元建设集团有限公司赵唐元
  • 网站外链收录很多 内链收录几个西安网站seo优化
  • 网站源码制作网站产品类别顺序如果修改