吐槽一下节点rotation和angles

3.4.1,做一个旋转的缓动,用tween实现,修改节点的rotation;发现根本不行;
到编辑器修改rotation的值,发现又没问题;怀疑人生。。。
查了API,发现有个eulerAngles,试了下,可行。。。
screenshot-20220309-093403
推测这个编辑器的rotation就是eulerAngles,如果是的话为啥名字不能统一一下,很容易误解

另外再吐槽一波,编辑器里的官方组件还全都是cc.。。。,保存的prefab和scene文件里面也是,api代码层面不都弃用了么,想不通。。。

编辑器使用欧拉角,是因为人类友好的旋转表示就只有欧拉角,同类编辑器也都是用欧拉角表示旋转。从历史 API 的角度 rotation 确实用欧拉角比较合适,因为 2dx 本来也就有 rotationXYZ。

但是到了 3D 世界,就会牵扯到很多约定俗成的东西。通常来说,欧拉角是人类友好的,但是底层用的都是四元数,因此涉及到编码,提供 rotation 做为欧拉角的话反而容易误导用户。

或许应该编辑器用 Rotation: EularAngles,引擎不提供 rotation 转而提供 eulerAngles & quat,消除一切歧义。不过或许到时候用户又会问说为什么引擎没有 rotation???或者编辑器用 EulerAngles 而不是 Rotation,不过这就跟业界主流软件脱节了,显得格格不入。

因此我们暂时没有特别充分的理由去打破这个常规。在编辑器属性上加个 tooltip 吧,告诉用户这个属性对应的是 eulerAngles。

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。