cocoscreator3.8.6无法在start生命周期之后,无法通过代码设置渲染材质的参数是怎么回事?

如下图,渲染材质有个透明度参数,transparencyFactor


打算在游戏运行中,动态修改这个材质的这个参数。
也就是用 Material实例的setProperty函数修改。

结果发现,在onLoad或start 函数执行是没问题的,玩家可以变半透明,如下图。

但是在start函数之后尝试设置材质参数,是无效的,角色不能变半透明,如下图在update里设置

可以用getMaterialInstance试试替换用shaderMaterial获取材质

我说的是在start和onLoad执行设置材质参数有效。之后再设置就无效。所以你说的包一层scheduleOnce属于在start之后,所以没用。

果然,用你的办法搞定了。


这种坑官方文档上居然没提到,全靠开发者互相传授经验。
material.shaderMaterial; 这个属性没什么用,官方还不如屏蔽掉,开放出来只会误导人。

这是有在一些场景下是有代价的,会影响合批,如果用回你之前方法,不生效的话设置完值再把原来获取到的材质再用setSharedMaterial设置回去可能也行