ShaderMaterial 再进行序列化存储的时候,出现存储不上的情况

如上文,我自定义的一个 shaderMaterial 再进行本地存储时,需要将场景文件进行序列化处理,结果存储后,本应该有的显示消失了,如果修改了参数后,对应的参数反而回出现 this._vector2(e).isArray 不是一个方法的错误。如图


有没有那位大佬遇到过这个问题,是不是再babylonjs里的 materials 里的 metadata 里不能存储东西?

如果要在这里快速获得答案,最好把帖子翻译成英文,然后在 Babylon.js Playground (babylonjs.com) 创建一个 PG,写一个最小的示例代码体现你的问题,点上面保存,然后把网址发过来。

我随便找了个shaderMaterial,序列化然后Parse,没问题的。

better translate your post to English and create a PG at Babylon.js Playground (babylonjs.com)

1 Like

It would seem that you called ShaderMaterial.setVector2 incorrectly. Make sure the second parameter you pass is a BABYLON.Vector2 instance.

好的,我知道了,我找到问题了,因为我的同事之前将vector2 的数据格式改成了自己定义的,每个数据都加了 undefined 判断,只有强转成 vector3 才不会报错

1 Like

Thank you, I found the problem. My colleague created a custom data format for vector2 and added an undefined judgment, so it cannot be serialized. Converting it to standard vector2 will solve the problem