[]在非BaseLayer播放材质属性动画时报错

材质是Unlit,动画是对材质的u_AlbedoColor属性做改动,所在动画层不是Base Layer;打点查了一下在赋默认值的时候property最后一次赋值为undefined,导致没有赋上默认值
无标题.png
已邀请:

phhh

赞同来自:

方便提供一下你的demo,方便我们更好地排查这个问题

Heured

赞同来自:

不太方便,我另外整了个demo流程都是走到注释"// 一定非第一层"。目前情况就是在_addKeyframeNodeOwner函数里创建KeyframeNodeOwner的时候,只要是材质的属性KeyframeNodeOwner.defaultValue就是null,看了一下传入的KeyframeNode的_propertys属性是["sharedMaterials", "0", "u_AlbedoColor"],这个路径在3.x版本下应该拿不到属性的吧
--> 2023.10.20 更新
看这么久没人回复而且3.0.7版本问题依然存在,我还是发一下自己的修正方式,如图2,图3,测试了一下不管是getBool还是getVector只要key对都能返回对应值或者对象
--> 2023.12.2 更新
在后面的开发过程中发现材质的颜色属性比较特殊,虽然一样能拿到值但是是vec4类型的,所以如果有取到的值是Color的需求时逻辑可以改成先用getColor取值,如果没取到再用getBool

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作