如何通过一条线镜像(和旋转)对象,就像它是入口一样?



我想创建一个2D门户效果。因此,退出入口的对象在位置/旋转上应与通过入口入口的对象相对应。直到原始对象的一半通过门户。

我制作了一个精灵立方体,应该镜像在一条线(门户)上。退出传送门的立方体只是原始立方体的克隆。如果我们旋转门户,则与门户相比,"反射"立方体应与原始立方体的位置一起旋转。如果我们旋转原始立方体本身,则"反射"也应该相对于门户进行镜像。我只是不知道要做哪些旋转以及在哪个空间。我已经尝试了很多本地转换等方法。

我使用 Vector2.Reflect 来获得反射的正确位置:

Vector2.Reflect(
(line.transform.position - cube.transform.position), line.transform.up
);

图片 1

为了将立方体镜像为反射,我添加了以下旋转:

reflection.transform.localRotation = Quaternion.Euler(0, 180, 0)
* cube.transform.localRotation;

但是现在,如果我旋转门户,反射的旋转方式应该与原始立方体在门户空间中的旋转方式相同,就像这里画得不好一样:

图片 2

有谁知道哪些是正确的转换/旋转来完成此操作,例如 localRotate/localTransform 计算?我已经尝试了很多,但在某个地方,我对正确数学的理解丢失了。

抱歉,还无法发布图片:)

我建议简单地反映cube.transform.forward:

reflection.transform.forward = Vector2.Reflect(cube.transform.forward, line.transform.up);

最新更新