我遇到了MonoTouch中Game Center集成的问题,游戏中心登录视图正在加载,但它正在删除当前加载的任何纹理。如果我注释掉PresentModalViewController行,那么游戏中心登录表单就不会出现,但是已经加载的纹理会留在内存中并且正常工作。我正在使用以下代码显示游戏中心视图:
GKLocalPlayer.LocalPlayer.AuthenticateHandler = (ui, ErrorCode) =>
{
if (ui != null) {
Debug.WriteLine ("GK Not authenticated, presenting login");
PresentModalViewController (ui, true);
} else {
Debug.WriteLine ("GK Checking Authentication");
bool authenticated = GKLocalPlayer.LocalPlayer.Authenticated;
if (authenticated)
Debug.WriteLine ("Game Center Authenticated. " + GKLocalPlayer.LocalPlayer.DisplayName);
else
Debug.WriteLine ("Game Center Not Authenticated. " + GKLocalPlayer.LocalPlayer.PlayerID + " " + ErrorCode.ToString());
}
};
之前有没有人见过这个问题,如果有的话,显示游戏中心登录页面的解决方案是什么,但保留加载的纹理?
答案 0 :(得分:0)
找到了这个问题的答案,它与MonoTouch OpenTK示例应用程序相关,建议在ViewWillDisappear事件中销毁渲染缓冲区,该事件在GameCentre窗口出现时发生。当Buffer被破坏时,纹理随之而来,因此这里的解决方案是不破坏ViewWillDisappear事件中的渲染缓冲区(并且随后不要在ViewWillAppear中重新创建它)。