在现场,我有一长串孩子,他们通过铰链连接到他们的父母。对于我的代码,我需要铰链锚点在世界空间中的位置,因此我使用:
public Vector2 hingeVector => hinge.anchor + (Vector2)gameObject.transform.position;
对于第一个铰链,该代码给出了正确的位置。但是第二次发生这种情况:
红色点是我得到的矢量,蓝色点是实际位置。如您所见,这是一个很小的差异,但仍然存在问题。
有什么办法可以解决这个问题?我在网上找不到类似的东西。
答案 0 :(得分:1)
锚点值是与轴对齐的,并且不受旋转的影响,但是为了计算世界空间中的锚点,知道变换的位置,您需要旋转锚点值对象的旋转然后将其添加到以下位置:
Vector2 p = hinge.anchor.Rotate(gameObject.transform.rotation.eulerAngles.z)
+ (Vector2)gameObject.transform.position;