我有这个适用于 Unity 的 Android 插件。目前它每帧重新计算一次相机的投影矩阵,虽然这有效,但显然非常浪费。我希望只有在屏幕方向发生变化时才能重新计算矩阵,因为这是唯一需要重新计算的时间。
但是,当我在网上查看时,我似乎可以找到的所有答案总是实现 onConfigurationChanged 或类似的,最终都要求您做同样的事情:扩展 Activity 类,这是我无法真正做到的,因为那里是没有活动。它只是一个构建的库,而不是一个完整的应用程序。
我知道有OrientationEventListener
,但是每次设备的方向改变甚至一度时都会触发,所以这种方法仍然非常浪费。
我想知道的是,有没有办法检测屏幕方向的变化,比如某种onConfigurationChanged
不需要扩展 Activity 才能使用的事件?
基本上我想要结束的是这样的:
// Event fired only when the screen orientation changes
void onScreenOrientationChanged (ScreenOrientation orientation)
{
recalculateMatrix(orientation);
}
而不是我现在拥有的更像是:
// Method called once per frame
void Draw ()
{
// Draw code
ScreenOrientation orientation = getOrientation();
recalculateMatrix(orientation);
}