网易首页 > 网易号 > 正文 申请入驻

【厚积薄发】AssetBundle加载的TMP字体材质赋值失败

0
分享至

这是第293篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com

UWA QQ群2:793972859(原群已满员)

本期目录:

  • AssetBundle加载的TMP字体材质赋值失败
  • 资源打包关系依赖树
  • Shader中设置ColorMask后,最终输出颜色的计算
  • Time.deltaTime和Time.unscaledDeltaTime值不一致

UGUI

Q:从AssetBundle加载的TMP字体材质,为什么在代码中设置为TMP组件的材质会失败?

使用Resources.Load加载材质赋值是可以的,但是AssetBundle加载代码赋材质却行不通。这里是把材质和字体都打了AssetBundle,TMP相关其他的没有打AssetBundle,走的TMP本身的Resources.Load加载方式。

从AssetBundle中LoadAsset后用一变量存了材质,然后所有text的材质赋值都访问了这个变量。

A:TMP字体内部默认用的Resources.Load的方式加载资源,建议修改TMP源码,把所有Resources.Load加载资源的方式代理成自己的。

我们的方案是:

在非AssetBundle模式下用它自身的加载方式。

AssetBundle模式下,就会由框架的资源加载代理。

感谢1 9 7 3-311135@UWA问答社区提供了回答欢迎大家转至社区交流:

https://answer.uwa4d.com/question/624d62aba43e6117d057f4b4

AssetBundle

Q:想做包体资源分析,大家有什么好的树显示工具或者思路推荐吗?有比较好的开源方案也可以。最简单就像N叉树一样,比如root一个文件名,然后展开整个树结构。

A1:我自己做了一个,供参考。都是用Unity自己的IMGUI最基本的接口去实现。

EditorWindows

GUI.Box

GUI.BeginGroup

GUI.Label

Handles.DrawBezier

Handles.DrawWireDisc

TreeView

基本上,组织好各个AssetBundle的依赖关系其实是很好呈现的。

感谢黄程@UWA问答社区提供了回答

A2:推荐一款比较好用的插件,不止有依赖树,还有其他打包的资源数据可供分析:

https://assetstore.unity.com/packages/tools/utilities/build-report-tool-8162

感谢郑骁@UWA问答社区提供了回答欢迎大家转至社区交流:

https://answer.uwa4d.com/question/623c8322a43e6117d040ae9b

Shader

Q:场景中有一个相机,ClearFlags为SolidColor,颜色设置为Blue(0,0,1,1)。

另外创建了个Cube,使用 一个最普通的vf shader,设置的输出颜色是Red,即fixed4(1,0,0,1);使用默认的ColorMask设置则会输出红色Cube,但是若设置了ColorMask R,最终Cube的颜色显示的是Blue和Red混合出来的,这一块有什么文档可以参考吗?

附Shader:

Shader "Custom/ColorMask"
Properties

SubShader
Tags { "RenderType"="Opaque" }

Pass
{
ColorMask R

CGPROGRAM
#pragma vertex vert
#pragma fragment frag

#include "UnityCG.cginc"

struct appdata
{
float4 vertex : POSITION;
};

struct v2f
{
float4 vertex : SV_POSITION;
};

v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
return o;
}

fixed4 frag (v2f i) : SV_Target
{
return fixed4(1, 0, 0, 1);
}
ENDCG
}
}
}

A1:猜测ColorMask R应该是只写入当前R通道的颜色,但是GB仍然会从摄像机的Background值获取。

感谢Knight-132872@UWA问答社区提供了回答

A2:Background的颜色是每帧渲染其他对象之前要对ColorBuffer设置的颜色,所以在渲染Cube之前,Color Buffer的颜色是蓝色的。当渲染这个物体时,默认是ColorMask为RGBA的,就是4个通道的值作为Source Color会和Dest Color的Color Buffer进行颜色混合,所以就显示为红色了。如果ColorMask只设置了R通道,那么只有R通道会进行颜色混合,默认的Blend模式为Blend One Zero,所以R通道的数值最终变成了1,而GB通道因为不做混合,所以保留了Dest Color的数值,所以最终Color Buffer的数值变成了(1,0,1)。

所以楼主理解的可能是先全部通道混合,再取R通道的数值作为Color Buffer的值,其他通道变成0,这样无论是ColorMask RGBA还是ColorMask R,都只会显示红色。实际上如果设置了ColorMask R,那么走的逻辑是只对R通道做了混合,GB通道的数值保持不变。

感谢Xuan@UWA问答社区提供了回答欢迎大家转至社区交流:

https://answer.uwa4d.com/question/6245719aa43e6117d04cb02d

Script

Q:Time.deltaTime和Time.unscaledDeltaTime值不一致问题,当timeScale等于1时且FPS稳定在60时两个API数值基本一致。但是FPS不稳定时,发现两个API得到的数值就不一致,有时差距很大。

问题1:请教怎么得到真正的未被timeScale缩放的DeltaTime呢?

问题2:或者怎么才能计算出和Time.deltaTime保持一致的值呢?

A1:使用Time.unscaledDeltaTime试试,它不受Time.timeScale影响。

感谢廖武兴@UWA问答社区提供了回答

A2:Unity内部对Time.deltaTime的计算做了最大上限的限制,不会超过Time.maximumDeltaTime,所以Time.deltaTime受到Time.timeScale和Time.maximumDeltaTime两个数值的影响,而Time.unscaledDeltaTime是不受限制的,因此当帧率不稳定导致某一帧的耗时超过Time.maximumDeltaTime后,(假设Time.timeScale为1),Time.unscaledDeltaTime就会比Time.deltaTime大。

所以,对于问题1,使用Time.unscaledDeltaTime即可。对于问题2,这个完全由Unity内部的算法决定的,除非有源码,否则不清楚是怎么算的。

感谢Xuan@UWA问答社区提供了回答欢迎大家转至社区交流:

https://answer.uwa4d.com/question/62485517a43e6117d051345c

封面图来源于网络

今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com

官方技术博客:blog.uwa4d.com

官方问答社区:answer.uwa4d.com

UWA学堂:edu.uwa4d.com

官方技术QQ群:793972859(原群已满员)

点击下方名片关注我们,将我设为星标,及时接收小编每日推送哦,性能优化不迷路~

近期精彩回顾

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国灵活就业者突破3.2亿大关,占就业人口比例高达44%。

中国灵活就业者突破3.2亿大关,占就业人口比例高达44%。

流苏晚晴
2026-06-13 18:21:18
2人2个月零营销,这款日本独立游戏Steam销量破千万

2人2个月零营销,这款日本独立游戏Steam销量破千万

热搜摘要官
2026-06-30 00:15:44
CCTV5+直播中日男篮大战,12人名单没出炉,郭士强按最强阵容备战

CCTV5+直播中日男篮大战,12人名单没出炉,郭士强按最强阵容备战

体育大学僧
2026-06-30 13:19:58
小沈阳女儿沈佳润化次妆3.8万你以为天价?杨紫妆造10万都是少说

小沈阳女儿沈佳润化次妆3.8万你以为天价?杨紫妆造10万都是少说

白宸侃片
2026-06-30 08:16:49
突发:勒布朗·詹姆斯将离开洛杉矶湖人队

突发:勒布朗·詹姆斯将离开洛杉矶湖人队

赛场速报局
2026-07-01 00:36:35
宝马汽车销售公司因造谣小米被处罚40万元!

宝马汽车销售公司因造谣小米被处罚40万元!

鞭牛士
2026-06-30 18:49:28
土耳其总统公开祷告摧毁以色列,内塔尼亚胡威胁:埃尔多安几乎每天都在呼吁摧毁以色列,以方“非常严肃地”对待,要向美国告状

土耳其总统公开祷告摧毁以色列,内塔尼亚胡威胁:埃尔多安几乎每天都在呼吁摧毁以色列,以方“非常严肃地”对待,要向美国告状

政知新媒体
2026-06-30 08:21:41
吴建豪刚宣布再婚!更多黑料被扒出,性无能、冷暴力只是冰山一角

吴建豪刚宣布再婚!更多黑料被扒出,性无能、冷暴力只是冰山一角

风月得自难寻
2026-06-30 15:33:57
44岁郭碧婷在西双版纳被偶遇,穿绿色连衣裙,身材胖长相好普通

44岁郭碧婷在西双版纳被偶遇,穿绿色连衣裙,身材胖长相好普通

洲洲影视娱评
2026-06-30 23:27:22
莫斯科遭遇新一轮大规模空袭!乌克兰计划获取风暴阴影导弹生产权

莫斯科遭遇新一轮大规模空袭!乌克兰计划获取风暴阴影导弹生产权

项鹏飞
2026-06-30 21:26:18
韩红正式发文道歉了,她随口说了一句走个面儿没想到引起轩然大波,韩红说她反复回看现场发言视频,逐条认真研读大家的批评意见和建议,深

韩红正式发文道歉了,她随口说了一句走个面儿没想到引起轩然大波,韩红说她反复回看现场发言视频,逐条认真研读大家的批评意见和建议,深

牛油果生活观
2026-07-01 00:57:37
Shams:马刺拒绝执行尚帕尼球队选项,并与他3年4500万美元续约

Shams:马刺拒绝执行尚帕尼球队选项,并与他3年4500万美元续约

懂球帝
2026-06-30 05:50:08
4次助攻第1!巴西28岁中场大师崛起:追平济科,辅佐维尼修斯冲冠

4次助攻第1!巴西28岁中场大师崛起:追平济科,辅佐维尼修斯冲冠

李喜林篮球绝杀
2026-06-30 11:52:23
曼联引援锁定荷兰国脚前锋,世界杯3场3球,将成锋线支点完美答案

曼联引援锁定荷兰国脚前锋,世界杯3场3球,将成锋线支点完美答案

体坛鉴春秋
2026-06-30 12:18:08
陈露发12分钟含泪视频求和遭拒!霍尊方晒长文回应,五年拉锯和解无望

陈露发12分钟含泪视频求和遭拒!霍尊方晒长文回应,五年拉锯和解无望

情感大头说说
2026-06-30 17:52:31
WTA一姐萨巴伦卡温网硬刚组织方:6420万奖金不够底层活,自曝订婚12克拉钻戒

WTA一姐萨巴伦卡温网硬刚组织方:6420万奖金不够底层活,自曝订婚12克拉钻戒

甜度百分百21
2026-06-30 00:40:28
突发!金价,闪崩

突发!金价,闪崩

91.6陕西交通广播
2026-06-30 22:39:58
美国大满贯又爆意外,孙颖莎王楚钦集体弃赛,放下的心又悬起来了

美国大满贯又爆意外,孙颖莎王楚钦集体弃赛,放下的心又悬起来了

残梦断忆
2026-06-29 18:35:26
赵薇前夫被曝曾2天赌输1.87亿,再借9360万继续赌到输光为止

赵薇前夫被曝曾2天赌输1.87亿,再借9360万继续赌到输光为止

开开森森
2026-06-30 22:33:55
世界杯预测,科特迪瓦队淘汰挪威队,法国队击败瑞典队晋级16强

世界杯预测,科特迪瓦队淘汰挪威队,法国队击败瑞典队晋级16强

足球分析员
2026-06-30 11:00:03
2026-07-01 02:00:49
侑虎科技UWA incentive-icons
侑虎科技UWA
游戏/VR性能优化平台
1592文章数 987关注度
往期回顾 全部

科技要闻

iPhone18 Pro遭泄密!印度代工商惹祸

头条要闻

坎贝尔承认:中国是最成功渡过难关的国家

头条要闻

坎贝尔承认:中国是最成功渡过难关的国家

体育要闻

德国足球,脸都不要了

娱乐要闻

黄晓明沦陷!羡慕周杰伦能降住昆凌

财经要闻

万亿“寒王”,历史时刻

汽车要闻

奇瑞风云A9探店 五个理由一定来看看

态度原创

亲子
本地
家居
房产
公开课

亲子要闻

未来5年稳步扩大免费教育范围,探索延长义务教育年限

本地新闻

贵州小城的新目标:举办“村超”世界杯!

家居要闻

传奇筑 日常诗

房产要闻

TOP10单盘狂卖210亿!海南楼市,上半年热销榜单出炉

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版