Results 438 comments of finscn

至于为什么 抖音有这个问题 微信没有. 我觉得可能是在 场景切换时 的某些时序不一致 (类似问题不止一处). 比如 这里提到的这个问题 https://github.com/cocos/cocos-engine/issues/17062 (只是用来举例 和本帖的问题无关) A环境下 需要延迟一帧才行, B环境下不需要延迟 . 如果B延迟也没什么问题, 只是单纯的延迟了一下而已, 那么为了确保一致性, 就应该让 A B都延迟.

> 这个可能是你动画做的有问题 动画并不是总是出这个错误啊. 一般是游戏场景切换 时. spine动画还能影响cocos场景切换? 动画用第三方播放器播放也都没问题.

@minggo 我简单测试了一下 用 `cc.isValid()` 是ok的.

顺便 再次吐槽下 你们的 eslint . 以前 我是非常原因给 cocos提交pr 的, 但是道了 3.x 时代, 真的是不想碰你们的代码. vscode打开 各种标红, 各种eslint错误. 还有很多更可怕的 `xxx | null` , `null! ` . 而且 `xxx | null` , `xxx...

@minggo walk为什么那么耗时? 以及 似乎 wasm版本的spine 并没有提升多少性能. wasm可能确实快了些, 但是它和js之间的通讯也是耗时的, 可能提升的性能没法弥补通讯的消耗.

@minggo spine的wasm库是不是没用共享内存啊? 如果用了 还是这么慢 那真的难以接受了. 强烈要求提供使用 ts版本的spine runtime的能力. ts版本至少更方便hack和优化.

查了下 小游戏平台的wasm是不支持共享内存的... 那真的太可怕了. 再次强烈要求 让开发者可以选择 ts版本的 spine runtime.

这个是真机上小游戏的cpu profiler , walk 耗费时间特别多. @minggo , 这个改为非递归会好一些吗? (我们项目中上万个node , 分很多层级)

论坛里这个帖子好像和我所说的问题类似: https://forum.cocos.org/t/topic/150402 引擎应该在 frame _resetDynamicAtlasFrame 时, 自动刷新sprite的某些状态吧?

> 个人认为 strictPropertyInitialization 没任何问题。只需要实现类似rust option类型即可。对于一个可空类型在任意地方unwraps 都是合理的。只需要程序本身可以认为此时是安全的就行。如果出现了空异常,那么说明程序执行了错误的逻辑。对于无法明确是否已经不会空的地方,也可自行通过 if let = Some(..) 判断。 也就是Nullable。或者从其他大型ts项目(babylon/vue)代码来看,大家都会默认为设置此类型为Nullable。也就是 T | undefined。这也更符合强类型语言的编程思维。cocos 的ts是基础设施。严格理当更好。对于这种变量,要么赋值要么可空。 你最后一句话 "要么赋值要么可空" 说到了点子上, 这个是我本来打算说的第二个话题(第二步) : 如果不想关闭 strictPropertyInitialization , 可以考虑关闭 strictNullChecks . 现在cocos 最尴尬的是 (其实不是...