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

医院诊所网站源码室内设计网站都有哪些平台

医院诊所网站源码,室内设计网站都有哪些平台,wordpress与微信连接数据库,网络推广培训心得体会Unity与Android混合开发 为什么使用Flutter构建 Flutter 是 Google 的开源工具包,用于从单个代码库为移动、Web、桌面和嵌入式设备构建应用程序(一套代码跨平台构建app是它最大的优点),并且可以构建高性能、稳定和丰富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.GetStatic<AndroidJavaObject>("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 call(CPU-> 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),而是重用它们。

资源如何优化

纹理图片
  1. 降低最大分辨率
  2. 采用二次幂压缩格式
  3. 制作纹理图集
  4. 取消Read/Write Enabled
  5. 禁用多余的Mip Map
模型

美术规范可以进行优化,我们可以在导入时,禁用Read/Write Enables,设置一些Mesh Compression或者Optimize Mesh。

使用LOD(多层次细节)

可使用服务器上部署资源包来实现打空包机制进一步减少包体体积。

资源部署与热更新

可使用AssetBundle, Addressable, YooAsset来组织和管理资源,资源可以打补丁包传输到CDN服务器,这样就可以进行资源的热更新,而无需重新build程序。

Addressable

资源(例如预制体)被标记为“可寻址”后,就会为该资源生成一个全局地址,系统可在任何地方通过该全局地址定位该资源。该地址是可寻址对象系统与资产位置关联的字符串标识符,无论该资产是驻留在您构建的游戏本地还是远程CDN网络上。如果资产位置发生更改,也无需重写代码。并且在需要加载资源的时候才会将资源加载进内存。

http://www.yayakq.cn/news/182771/

相关文章:

  • 上海网站开发公司排名重庆网络问政平台华龙网
  • 怎么给网站wordpress顺义免费网站建设
  • 东莞材料网站建设拉新推广赚钱的app
  • 自己开通一个网站需要多少钱阿里云免费网站
  • 做app模板网站有哪些内容百度渠道开户
  • 视频网站如何赚钱某学校网站的安全建设方案
  • 江都建设上海公司网站龙口网站制作多少钱
  • 网站建设2017主流代码语言做网站图片处理问题
  • 七牛云做网站seo排名工具给您好的建议
  • pc网站手机版开发买了域名和空间怎么做网站
  • 入门做外贸是先建网站还是先参展河南网站建设推广公司
  • 国内电商平台有哪些sem优化推广
  • 淘宝客商品推广网站建设中企动力网站怎么样
  • 台州建设规划局网站网站seo外包
  • 北京网站建设问问q778925409霸屏wordpress添加磁力下载地址
  • 哪里学网站开发好新冠数据实时更新
  • 怎么找网站做推广达内学费价格表
  • 出名的设计网站建设个人博客网站制作
  • 特效素材网站怎么根据街景图片找地址
  • 网站如何做分站系统360建站和凡科哪个好
  • 江都区城乡建设局网站威海城乡建设局网站
  • 网站商城前台模板免费下载sgs网站开发公司
  • 网页设计就是做网站优化的吗环球设计官网网站
  • cdn网站做app需要什么软件
  • 模块网站弊端化妆品商城网站建设
  • 怎么建网站教程视频江阴网站建设
  • 瑶海合肥网站建设2023年最火简约装修全屋
  • 100款免费软件网站大全qq空间做宣传网站
  • 提供家居企业网站建设WordPress文章生成海报代码
  • 娄底网站建设网站广州公司宣传片设计