我想创建一个2D门户效果。因此,退出出口门户的对象应该在位置/旋转方面与通过入口门户的对象相对应。直到原始对象的一半是通过门户网站。
我制作了一个应该在一条线(门户网站)上镜像的精灵多维数据集。退出门户网站的多维数据集只是原始的克隆。如果我们旋转门户,“反射”立方体应该与原始立方体的位置一起旋转,与门户相比。如果我们旋转原始立方体本身,那么“反射”也应该与门户相关。我无法弄清楚要做哪些旋转以及在哪个空间。我用局部变换等尝试过很多东西。
我使用Vector2.Reflect来获得反射的正确位置:
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);