1.偏移问题
因为想在ugui上面做一个路径动画,结果编辑好的路径一运行就发生了偏移,情况如下
出现这种情况有两个必备条件
- Canvas的缩放不为 1
- DotweenPath勾选了Relative
2.解决方案
- 打开Script Execution Order
然后把Path添加进来,必须要大于0
啊,然后在运行发现没有错误! - 那就把 选项去掉
3.为什么会出现这种情况
我反编译了一下dotweenpath代码,发现勾选了Relative
其实就是在原来位置上增加了一个偏移
问题就出在这个Vector3 position = base.transform.position
和lastSrcpostion
上面.
默认lastSrcpostion=0
,但是执行中通过Vector3 position = base.transform.position
获取的值是UI RectTransform的anchoredPosition3D
,那么此时的lastSrcpostion=RectTransform.anchoredPosition3D
,但是dotweenpath中的点位信息都是按照世界坐标来算的,这时候计算的偏移就出现问题了,导致 整个坐标点都偏移了.,下图例子
然后我写了Test.cs
脚本挂在上面
打印结果:
可以看到lastSrcPosition
得到的是RectTransform.anchoredPosition3D
值.所以就导致出现了这种问题.
当Canvas是1的时候不会出现
题外话
dotween
作者并没有考虑将dotweenpath
作用于UGUI上面