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

为何反射探针关闭Mipmap后变成了白图

1)为何反射探针关闭Mipmap后变成了白图
2)2021.3 Android从AssetBundle中加载视频播放失败问题
3)SBP是否可以解决打包时FBX等模型文件中额外的GameObject
4)Addressables加载已打包过的Prefab后Mono脚本丢失


这是第349篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

Rendering

Q:反射探针关闭Mipmap后,变成了白图,请问这是为什么?

A:是与以下这个选项有关:

在Unity官方手册中提到,该选项会以镜面卷积的方式处理立方体贴图的Mipmap:

不过这里的Mipmap和传统的Mipmap不太一样,是根据粗糙度不同进行划分的:

在Shader代码中也可以看到:

如果把这个设置改成none,那么无论开不开Mipmap都是一样的效果。

感谢真理@UWA问答社区提供了回答


Loading

Q:在Unity 2021.3版本下,Android从AssetBundle中加载视频播放:
AndroidVideoMedia::OpenExtractor could not translate archive

1. 使用的版本是Unity 2021.3.8
2. 在打包视频的时候设置了不压缩
3. AssetBundle放在StreamingAssets目录下
4. 相关代码

    btn.onClick.AddListener(() =>{AssetBundle ab = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/assetbundle/videos"+ "/1109.ab");Debug.Log(ab == null);videoPlayer.clip = ab.LoadAsset<VideoClip>("1109");videoPlayer.Play();});
///buildBuildPipeline.BuildAssetBundles(config.OutPath, BuildAssetBundleOptions.UncompressedAssetBundle, config.buildTarget);

出现的问题:
在Android 9.0以下手机加载视频播放不了,日志:

Unity AndroidVideoMedia::OpenExtractor could not translate archive:/CAB-8621c60d70de42f9c22e8270082bc81a/CAB-8621c60d70de42f9c22e8270082bc81a. resource to local file.  Make sure file exists, is on disk (not in memory) and not compressed.

Android 9.0以上则没有问题。

一些参考:
从论坛帖中了解如果要想从AssetBundle加载视频播放必须设置成不压缩:
Video: Support for reading videos from AssetBundles on Android. - Unity Forum

官方文档也说明了:
Unity supports playback from uncompressed asset bundles. For Android Pie and above, Unity supports playback from compressed asset bundles.

按照上面来说,应该是可以加载视频播放,但是还是有问题,不知道有没有道友遇到过。

另外请问各位在处理视频资源的时候是什么方案,也是打进AssetBundle,还是原封不动直接放到资源目录?

A1:自测了一下,不把视频打AssetBundle包就可以解决。

或者参考这个方案:
Video - Load VideoClip in assetbundle on Android | Page 2 - Unity Forum

代码供参考:

private IEnumerator loadVideo(string pathvideo){assetBundleRequest = DownloadingScreenManager.getInstance().getMapAssetBundle()["vide_bundlename"].LoadAssetAsync(pathvideo);yield return assetBundleRequest;textAsset = (TextAsset)assetBundleRequest.asset;File.WriteAllBytes(Path.Combine(Application.persistentDataPath, pathvideo + ".mp4"), textAsset.bytes);string url = Application.persistentDataPath + "/" + pathvideo + ".mp4";videoPlayer.url = url;}

感谢题主zerolj@UWA问答社区提供了回答

A2:从Bundle包里播放视频有很多问题,不同的机型表现还不一样,有的能播放有的不能。我们的做法是当二进制打包到Bundle,开游戏时复制到用户目录,播放时指定路径,最后还做了播放超时的处理。

感谢李伟@UWA问答社区提供了回答


Memory

Q:Scriptable Build Pipeline是否可以解决掉打包时,FBX等模型文件中额外的GameObject?

正常Asset编译流程编模型会带进来一堆不需要的东西。其中最突出的是复制出来的Build In资源,其次是带来大量Remapper内存消耗。

当前尚不了解SBP的能力,因此还是在使用复制Mesh和AnimationClip的流程进行优化。

不知道SBP有没有能力剔除单个AssetPath下的部分文件引用?其他就是能不能强制断开资源引用(类似Editor图标,Shader的默认贴图之类的)。

A:自己测试了下,确认可以做到。就是在IBuildTask层设置一下都可以提出。

感谢题主欧月松@UWA问答社区提供了回答


Addressable

Q:所有使用Addressables打包的Prefab,加载后Mono脚本都丢失了;用了几个版本的Addressables,和设置MonoScript Bundle Naming所有选项,情况均不变。

也不知道是哪没设置对?

A:如果脚本丢了,说明反序列化时资源和代码没有关联上,防止环境不一样最好重新打包资源。

感谢李伟@UWA问答社区提供了回答


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com

 

http://www.lryc.cn/news/146202.html

相关文章:

  • 成都睿趣科技:抖音开网店前期的流程是什么
  • 机房安全之道:构筑坚固的网络防线
  • 使用GoLand进行远程调试
  • C++通过JNI调用JAVA方法返回ArrayList对象
  • .netcore grpc截止时间和取消详解
  • React组件间数据传递(弹框和高阶组件(HOC)特性实现)
  • 只考一门数据结构,计算机学硕复录比1:1的山东双非学校考情分析
  • SpringMVC之异常处理器
  • 【数据结构与算法篇】手撕八大排序算法之快排的非递归实现及递归版本优化(三路划分)
  • docker network
  • 回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测
  • 新亮点!安防视频监控/视频集中存储/云存储平台EasyCVR平台六分屏功能展示
  • 深入解析SNMP协议及其在网络设备管理中的应用
  • 【SA8295P 源码分析】86 - AIS Camera Device 设备初始化 之 AisProcChainManager 模块初始化源码分析
  • 十五、pikachu之CSRF
  • C语言网络编程:实现自己的高性能网络框架
  • hive表向es集群同步数据20230830
  • 五、Kafka消费者
  • 类 中下的一些碎片知识点
  • JVM第二篇 类加载子系统
  • 火爆全网!HubSpot CRM全面集成,引爆营销业绩!
  • 远程调试环境
  • Java面试之用两个栈实现队列
  • Python-实用的文件管理及操作
  • Mysql 事物与存储引擎
  • java.lang.classnotfoundexception: com.android.tools.lint.client.api.vendor
  • pytest fixture夹具,@pytest.fixture
  • YOLOv7源码解析
  • 2023高教社杯数学建模思路 - 复盘:校园消费行为分析
  • ATF(TF-A)安全通告 TFV-2 (CVE-2017-7564)