如何将控制键映射到特定角度或方向?

目前,我基本上已经建立了一个不同角度的大型哈希表,以及他们映射到的方向,如果用户按右,上,下,左。 在我的情况下,这是需要的,因为我有一系列几何graphics,当用户按右键时,它们全部向右移动,当离开时,它们全部向左移动…

但是,当包含这些内容的场景旋转到原始状态以外时,这些控件需要更新/反转/等等。 也就是说,如果你从后面看现场,现在按下左边的物体都是正确的,等等。

我试图看看是否有一个更简单的方法来应用matrix转换,而不是硬编码一个大的散列表,将各种场景角度映射到键。

我没有想太久。 但似乎相当简单。 我假设你知道modelViewMatrix是什么。 这个4×4matrix将坐标(点)从世界空间转换到相机空间。 有一个类似的matrix,称为normalMatrix,它转换vector(通常是正常的vector)。 它和modelViewMatrix一样,但是跳过了所有的翻译操作。 这个正常的matrix是一个3×3的matrix。 只需将该matrix反转,并将其乘以一个代表被按下键的方向的相机空间vector即可。 一旦将vector传回世界空间,您可能需要将其投影到地平面上(放下y分量可能会做的)。