如上文,我自定义的一个 shaderMaterial 再进行本地存储时,需要将场景文件进行序列化处理,结果存储后,本应该有的显示消失了,如果修改了参数后,对应的参数反而回出现 this._vector2(e).isArray 不是一个方法的错误。如图
有没有那位大佬遇到过这个问题,是不是再babylonjs里的 materials 里的 metadata 里不能存储东西?
如上文,我自定义的一个 shaderMaterial 再进行本地存储时,需要将场景文件进行序列化处理,结果存储后,本应该有的显示消失了,如果修改了参数后,对应的参数反而回出现 this._vector2(e).isArray 不是一个方法的错误。如图
如果要在这里快速获得答案,最好把帖子翻译成英文,然后在 Babylon.js Playground (babylonjs.com) 创建一个 PG,写一个最小的示例代码体现你的问题,点上面保存,然后把网址发过来。
我随便找了个shaderMaterial,序列化然后Parse,没问题的。
better translate your post to English and create a PG at Babylon.js Playground (babylonjs.com)
It would seem that you called ShaderMaterial.setVector2
incorrectly. Make sure the second parameter you pass is a BABYLON.Vector2 instance
.
好的,我知道了,我找到问题了,因为我的同事之前将vector2 的数据格式改成了自己定义的,每个数据都加了 undefined 判断,只有强转成 vector3 才不会报错
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