组件设置轴心之后,旋转再拖动会出现闪跳

一个组件如果设置了轴心为中心点,再旋转了一定角度之后,这个时候拖动它的话第一帧它的位置会有一个跳动,请问有什么办法解决吗?
已邀请:

yksalun - unity

赞同来自:

已经解决了
假设GObject的坐标值是A,GObject的DisplayObject.CacheTransform.LocalPosition的值是B,GObject经过LocalToGlobal转换成Stage坐标,再通过GlobalToLocal转化成父对象的坐标时,这时候的坐标值是B,而不是A。
这两个值正常情况下是一样的,但是如果元件设置了轴心并且有旋转之后,A和B的值就不一样了,所以经过上面坐标转换之后设置了B的坐标之后就会出现闪跳。这个时候需要将B转换成A。
A转换成B的规则是 B.x = A.x+pivotX*width - displayobject.pivotOffset.x; B.y = A.y+pivotY*height + displayobject.pivotOffset.y; 所以把B转换回A就是将上述过程逆转回去就行了。

要回复问题请先登录注册