做ui的图从哪个网站找,烟台市科技局网站,wordpress 首页更换,策划公司口号1#xff09;限制Unity帧率的方式 2#xff09;只在编辑器内#xff0c;纹理不开启ReadWrite情况下#xff0c;如何获取纹理所有颜色值 3#xff09;如何在FBX剔除Lit.shader依 4#xff09;如何在iPhone 12mini设备上禁止竖屏 这是第373篇UWA技术知识分享的推送限制Unity帧率的方式 2只在编辑器内纹理不开启ReadWrite情况下如何获取纹理所有颜色值 3如何在FBX剔除Lit.shader依 4如何在iPhone 12mini设备上禁止竖屏 这是第373篇UWA技术知识分享的推送精选了UWA社区的热门话题涵盖了UWA问答、社区帖子等技术知识点助力大家更全面地掌握和学习。 Platform
Q目前我们想把游戏设置为30帧是通过Application.targetFrameRate实现的但是会有一些兼容性问题比如一些设备会动态调整设备刷新率导致游戏帧率过低比如设备从120HZ动态降为60HZ时游戏就从30帧掉为15帧了我们也尝试过跟进设备的刷新率变化动态调整Application.targetFrameRate但是一些设备还是出问题主要是一些支持高刷新的设备如120HZ、180HZ设备在标准模式下本身会动态调整刷新率的节约能耗。
不知道大家有没有相关的经验或者更好的解决方案 A可以尝试挂一个Update脚本估计可以跟上高刷新的设备120HZ、180HZ的动态调整刷新率。 感谢NG週UWA问答社区提供了回答 Editor
Q只想在编辑器内优化一些纹理图片纹理不开启ReadWrite。
目前方案如下但是会有几个问题1. LoadImage只支持PNG、JPG格式像TGA、PSD格式则返回为空。2. 对于那些几十MB的PNG纹理也是返回空。
请问有无其他方式
代码如下
var texture AssetDatabase.LoadAssetAtPathTexture2D(assetPath);
var bytes File.ReadAllBytes(assetPath);
var new_texture new Texture2D(texture.width, texture.height);
var res new_texture.LoadImage(bytes);
if (res false)
{Debug.LogError($错误提示{assetPath}纹理资源LoadImage失败, texture);return null;
}
var colors new_texture.GetPixels32(); // 获取到所需颜色数组A1可以试试以下方法 Texture2D texture AssetDatabase.LoadAssetAtPathTexture2D(assetPath); // 你的纹理
byte[] rawTextureData texture.GetRawTextureData();Texture2D finalTex new Texture2D(texture.width, texture.height, texture.format, false);
finalTex.LoadRawTextureData(rawTextureData);
finalTex.Apply();var colors finalTex.GetPixels32(); // 获取到所需颜色数组请注意所有这些方法都是在绕过Read/Write Enable的限制时的替代品而不是直接的解决方案。如果可能最好还是在导入纹理时启用Read/Write Enable以获得更好的性能和更简单的纹理操作。 另外一个方法可以设置一个Camera的TargetTexture为一个RenderTexture接着使用Graphics.Blit将目标纹理渲染到这个RenderTexture上。然后你可以通过ReadPixels函数将RenderTexture读取为Texture2D。这种方法不依赖于Read/Write Enable。 扩展阅读《高效访问纹理数据持续优化整体性能》 感谢NG週UWA问答社区提供了回答 A2我之前用过NG週说的办法是可行的不过我当时只处理PNG图片。 另外离线处理纹理可以考虑使用Job来并行化处理效果很高。 感谢junbin.liuUWA问答社区提供了回答 Asset
Q测试发现只能通过后处理才能去掉Lit.shader依赖尝试使用AssetDatabase.LoadAssetAtPath(fbxPath)然后执行下面代码并不能去掉依赖。请问还有什么其他办法吗
protected void OnPostprocessModel(GameObject model){var renderers model.GetComponentsInChildrenRenderer();foreach (var renderer in renderers){// 默认fbx会引用Lit.mat会引起ab包冗余导入时去掉foreach (var material in renderer.sharedMaterials){if (material ! null material.name Lit){renderer.sharedMaterials new Material[0];}}}// 去掉fbx默认自带的材质球ModelImporter importer (ModelImporter)base.assetImporter;if (importer ! null){if (importer.materialImportMode ! ModelImporterMaterialImportMode.None){importer.materialImportMode ModelImporterMaterialImportMode.None;importer.SaveAndReimport();}}}A可以试试在打包阶段打AssetBundle之前去掉Lit.mat对lit.Shader的依赖。 Cube.prefab就是Unity默认的Cube做成的Prefab。 var prefabGO AssetDatabase.LoadAssetAtPathGameObject(“Assets/Editor/Cube.prefab”);
var renderer prefabGO.GetComponentRenderer();
renderer.sharedMaterial.shader null;感谢范世青UWA问答社区提供了回答 iOS
Q使用的Unity引擎是2020.347f1已经在打包时候设置了横屏然后又使用了以下代码设置其它机型没问题但对面的机器还是能竖屏。 Screen.orientation ScreenOrientation.AutoRotation;Screen.autorotateToLandscapeLeft true;Screen.autorotateToLandscapeRight true;Screen.autorotateToPortrait false;Screen.autorotateToPortraitUpsideDown false;想要禁止竖屏设置横屏在安卓和大部分苹果上没问题但在iPhone 12mini上却可以竖屏请问还有其它方法吗 A1先确定iPhone 12mini的出包工程跟其他苹果设备的是否是同一个接着排除有没有不小心在Xcode工程里面设置了竖屏模式还有就是给iPhone 12mini装一个同类型的游戏看看能不能横屏排除是不是手机装了强制竖屏插件问题。 感谢NG週UWA问答社区提供了回答 A2遇到过一次是手机系统的Bug打开任何游戏都能切换横竖屏重启下手机然后好了。 感谢jjUWA问答社区提供了回答
封面图来源于网络 今天的分享就到这里。生有涯而知无涯在漫漫的开发周期中我们遇到的问题只是冰山一角UWA社区愿伴你同行一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网www.uwa4d.com UWA社区community.uwa4d.com