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

Unity3d 我如何通过一条线镜像(和旋转)一个对象,就像它是一个入口一样?,unity3d,rotation,quaternions,portal,mirroring,Unity3d,Rotation,Quaternions,Portal,Mirroring,我想创建一个二维门户效果。因此,退出入口的对象应在位置/旋转上与通过入口的对象相对应。直到原始对象的一半通过入口 我制作了一个精灵立方体,应该镜像到一条线上(门户)。退出门户的多维数据集只是原始多维数据集的克隆。如果我们旋转入口,“反射”立方体应该与原始立方体相对于入口的位置一起旋转。如果我们旋转原始立方体本身,“反射”也应该与门户镜像。我只是不知道该在哪个空间做哪些旋转。我试过很多地方变换等 我使用矢量2.反射来获得反射的正确位置: Vector2.Reflect( (line.trans

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

我制作了一个精灵立方体,应该镜像到一条线上(门户)。退出门户的多维数据集只是原始多维数据集的克隆。如果我们旋转入口,“反射”立方体应该与原始立方体相对于入口的位置一起旋转。如果我们旋转原始立方体本身,“反射”也应该与门户镜像。我只是不知道该在哪个空间做哪些旋转。我试过很多地方变换等

我使用矢量2.反射来获得反射的正确位置:

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

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

reflection.transform.localRotation = Quaternion.Euler(0, 180, 0)
  * cube.transform.localRotation;
但是现在如果我旋转入口,反射的旋转方式应该与原始立方体在入口空间中的旋转方式相同,如图所示:

有人知道要实现这一点,哪些是正确的变换/旋转,比如localRotation/localTransform计算吗?我试了这么多,但在这一过程中,我对正确数学的理解迷失了方向


抱歉,现在还不能发布图像:)

我建议只反射cube.transform.forward:

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

我建议只反射cube.transform.forward:

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

我需要在线路上镜像立方体。这可以很好地反映。然后,我将反射移动到出口入口位置,使两者看起来相似(因此反射距离出口的距离与立方体距离入口的距离相同)。但是如果我旋转入口入口,使它更接近立方体,反射也应该围绕出口入口旋转。。。这意味着,如果立方体的一小部分穿过入口门户,那么在出口门户中应该可以看到相同的部分。我需要在线路上镜像立方体。这可以很好地反映。然后,我将反射移动到出口入口位置,使两者看起来相似(因此反射距离出口的距离与立方体距离入口的距离相同)。但是如果我旋转入口入口,使它更接近立方体,反射也应该围绕出口入口旋转。。。这意味着,如果立方体的一小部分穿过入口门户,那么在出口门户中应该可以看到相同的部分。