如下图,渲染材质有个透明度参数,transparencyFactor。
打算在游戏运行中,动态修改这个材质的这个参数。
也就是用 Material实例的setProperty函数修改。
结果发现,在onLoad或start 函数执行是没问题的,玩家可以变半透明,如下图。
但是在start函数之后尝试设置材质参数,是无效的,角色不能变半透明,如下图在update里设置
如下图,渲染材质有个透明度参数,transparencyFactor。
打算在游戏运行中,动态修改这个材质的这个参数。
也就是用 Material实例的setProperty函数修改。
但是在start函数之后尝试设置材质参数,是无效的,角色不能变半透明,如下图在update里设置
可以用getMaterialInstance试试替换用shaderMaterial获取材质
我说的是在start和onLoad执行设置材质参数有效。之后再设置就无效。所以你说的包一层scheduleOnce属于在start之后,所以没用。
这是有在一些场景下是有代价的,会影响合批,如果用回你之前方法,不生效的话设置完值再把原来获取到的材质再用setSharedMaterial设置回去可能也行