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

使用SBP打AssetBundle时脚本引用丢失

1)使用SBP打AssetBundle时脚本引用丢失
2)在UE 5.3中连接Power节点为何10的3次幂等于1009
3)如何在Widget中倾斜一张纹理贴图
4)如何在打开关卡蓝图时更改游戏模式


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

AssetBundle

Q:最近项目实验升级ScriptableBuildPipeline打包AssetBundle(之前使用的是Built-in构建管线)。使用的Unity为2022.3,SBP版本为2.1.4。

结果发现打出的UI AssetBundle中,部分NGUI的脚本丢失引用了,丢的最多的是UIButton。但也不是所有UI都会丢失,有的就正常,Built-in管线打包也正常。

真机上加载资源的时候会报错:
Error: A scripted object (script unknown or not yet loaded) has a different serialization layout when loading. (Read 32 bytes but expected 8136 bytes)

Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?

UnityEngine.AssetBundle:LoadAsset(String)

使用AssetStudio解包AssetBundle,发现脚本的m_PathId为0。这可能是哪儿的问题?

A:后续:
针对出问题的文件单独导出独立工程Demo去调试。发现出问题的情况是AssetBundle的引用也包含了相同的脚本且这个引用也是打AssetBundle的,应该是递归引用的时候出问题了。

解决方案:

  1. 设置SBP中BuildParameters的NonRecursiveDependencies为false。
    修改方法:
    a. 将Library\PackageCache夹子下SBP的组件移动到Packages下变为本地组件,即可编辑代码。
    b. 使用SBP非兼容模式接口构建,new出BuildParameters,然后可修改此属性。
  1. 将脚本信息都写入到一个独立的Bundle中,这样所有Bundle都引用它即可,这种方式需要启用CreateMonoScriptBundle。
    修改方法:
    在SBP组件中的DefaultBuildTasks脚本Create接口内
    return AssetBundleCompatible(false, true);

感谢题主mr.Tian@UWA问答社区提供了回答


Script

Q:在UE 5.3中,我连接Power节点计算10的3次幂,得到的结果是1009,这是为什么呢?

A:幂函数计算非常慢,因此会使用近似值来加快计算速度,所以可能会出现这种情况。可以改用Multiply多次相乘计算结果,或者用Material Expression Custon输入公式进行计算,手动造一个计算节点。

针对以上问题,有经验的朋友欢迎转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


UI

Q:我想在Widget中倾斜一张纹理,就像Photoshop中的效果那样,有什么方法可以做到吗?

A:可以使用材质蓝图实现,基本原理是调整UV来实现倾斜的效果。也可以直接下载UE官方项目UI Material Lab,有一个Skew的倾斜材质,核心的实现方式可以重点参考其中名为MF_UI_Skew的Material Function。

针对以上问题,有经验的朋友欢迎转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


Blueprint

Q:当角色触发On Component Begin Overlap(StaticMesh)时我调用Open Level(by Name)来打开新场景,同时我还想改变游戏模式,例如从BP_ThirdPersonGameMode类型的第三人称视角变为BP_FirstPersonGameMode的第一人称射击游戏,请问该怎么做呢?

A:由于每个关卡都可以在World Setting中设置单独的Game Mode,因此只要设置好在切换场景时切换游戏模式也是很自然的事情。另外可以用Trigger Box直接在关卡蓝图获得OnActorBeginOverlap,比Static Mesh使用更方便。

针对以上问题,有经验的朋友欢迎转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技

封面图来源于网络


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

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

 


http://www.kler.cn/a/317120.html

相关文章:

  • 使用Python实现对接Hadoop集群(通过Hive)并提供API接口
  • Database Advantages (数据库系统的优点)
  • Django基础用法+Demo演示
  • qt QKeySequence详解
  • 树形dp总结
  • MySQL45讲 第二十讲 幻读是什么,幻读有什么问题?
  • [Linux]ubuntu安装nvidia显卡驱动登录后黑屏
  • 通过 Flink 的火焰图定位反压
  • LabVIEW提高开发效率技巧----合理使用数据流与内存管理
  • MySQL篇(管理工具)
  • CPLD 工程师面试题
  • springboot结合p6spy进行SQL监控
  • Hadoop 性能优化高频面试题及答案
  • XSS—xss-labs靶场通关
  • codeforces round974 div3 分层图 树形dp
  • uniApp实现APP内自更新
  • 【OpenCV】场景中人的识别与前端计数
  • 针对论坛系统设计测试用例
  • 分布式难题-三座大山NPC
  • 使用streaming-json-py插件处理JSON数据流:详细指南
  • 【论文阅读笔记】TOOD: Task-aligned One-stage Object Detection
  • Linux服务部署指南
  • Vue3教程 - 1 Vue简介
  • minitrace使用
  • 只装了WPS,DOC文档无法打开
  • c语言面试字符串复制