[3.8.4 升级必读]:Node 的一些 set 接口行为的修正

哦~ 好吧,的确是这样。

1赞


我有疑问,帖子是5.31发的,和3.8.4有啥联系;
是3.8.4才改动还是3.8.4又有了新的改动;
哪些版本升级需要检查,5.31之前的版本还是所有版本

1赞

这帖子应该是3.8.4的第一个测试版出来的时候发的

1赞

还是引擎接口和项目接口中间包一层最安全,不管它改什么,中间层适配下就完事了.

2赞

按照新版本逻辑,
直接 ```
this.node.worldPosition = worldPos;
worldPos.y=3
this.node.worldPosition = worldPos;

设置第二次更新的时候就不生效了,因为是地址引用
1赞

是的! 对比的时候值会相等,跳过脏标记。 但是数据已经改了。

1赞

这个贴子是 3.8.4 社区版的时候就发了。。

1赞

是这样的.

但总感觉 . 还是好奇怪呀…
这样会造成很多"莫名其妙" 的困扰… 如果新人对这块儿的前因后果不了解. . 会陷入"逻辑地狱" , 自己明明设置了. 但效果就是达不到预期… 想到这里仿佛已经看到他们焦头烂额, 束手无策的样子了~ :upside_down_face:

我觉得下个版本应该还会有所调整. 现在这个调整真的可以算上是一个大坑了.

2赞

太反直觉了,即使我现在看了这个帖,过了几个月或者半年,突然有个需求我要用上的时候,也不一定用得对

1赞

看到一些框架,大量接口传参数都是{},问有没有内存GC和性能问题?

2赞

做值比较更合理吧,做地址比较确实会引起莫宁奇妙的逻辑,和预期不太相符,开发者很少在意这个点,然后发现问题的时候就是一顿操作,值比较消耗不了多少性能

1赞

你这个里面是判断传进来的是不是同一个对象 是同一个对象就不设置对吧?为什么不判断传进来的值是否相等呢?

1赞

第一次发现会判断是不是同一个对象来 是否设置的 最好是判断里面的内容是不是相等才合理啊!判断同一个对象是那个人想出来的奇葩想法 感觉是不是出间谍了

1赞

这不是引用类型吗,既然是同一个对象,那值是怎么能不相等的…

2赞

判断值的话,还可以省点new的内存 :upside_down_face:

1赞

做的就是值判断呀。 但由于你是同一个引用, 值判断的时候自然就是相等的呀。

1赞

做的就是值判断啊, 左右两边都是同一对象判断值,自然就是相等呀。

1赞

说的是Equals判断,判断每个字段是不是相等 而不是判断是不是同一个对象。

1赞

嗯。是的。

1赞