有没有解决方案来检测Unity3D游戏的可见性?特别是在切换到前景/背景时做一些特定的事情?如何检测Unity3D应用程序的状态 - 是否可见
1
A
回答
4
MonoBehaviours支持两个有用的钩子:
OnApplicationFocus将被调用任何时候玩家获得或失去焦点。
OnApplicationPause将在应用程序暂停或取消暂停时调用。请注意,只有在播放器设置中“后台运行”为false,并且大多数代码执行都会停止,直到应用程序重新获得焦点为止。
考虑到上面的注意事项,我通常更喜欢使用OnApplicationFocus,但两者都可以是有用的,具体取决于你正在尝试做什么。
至于处理这些事件,您可以确保每个场景中的某个对象正在侦听它们。要么附加一些持久存在于场景之间的单体对象,要么保持每个场景的对象来适当地处理它们。
Unity的脚本引用提供了这个例子。通过这个脚本安装到在一些场景中的对象,它会抛出一个GUI消息而本场比赛已失去焦点:
public class Example : MonoBehaviour {
public bool paused;
void OnGUI() {
if (paused) {
GUI.Label(new Rect(100, 100, 50, 30), "Game paused");
}
}
void OnApplicationFocus(bool focusStatus) {
paused = focusStatus;
}
}
1
OnApplicationPause应该是你所需要的。
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
public bool paused;
void OnGUI() {
if (paused)
GUI.Label(new Rect(100, 100, 50, 30), "Game paused");
}
void OnApplicationPause(bool pauseStatus) {
paused = pauseStatus;
}
}
:
实施例(直接从统一文档为可读性拉动)
相关问题
- 1. 如何检测我的应用程序是否处于脱机状态?
- 2. 如何检测除我以外的应用程序的状态?
- 3. 如何检测mediacontroller是否可见?
- 4. 如何检查状态栏在Android中是否可见
- 5. 如何从Runnable检测Activity是否处于可用状态?
- 6. 如何检测应用程序是否可以卸载?
- 7. Android从任何应用程序检测触摸状态
- 8. 从不同导航状态中检测应用程序恢复的状态android
- 9. 如何检测我的应用程序是否是沙盒?
- 10. 如何检测应用程序的恢复状态而不是活动?
- 11. 是否可以保存Web应用程序的状态
- 12. 检测应用程序是否临时
- 13. 检测应用程序是否安装?
- 14. 检测元素是否真的可见
- 15. 用于检测应用程序状态的iOS库
- 16. 检测Silverlight应用程序是否在浏览器中处于活动状态
- 17. Android检查应用程序状态
- 18. 如何检查最前面的应用程序是否处于全屏状态?
- 19. 如何检测用户是否在可可中有应用程序
- 20. 如何检测网络接口的状态是否已启用?
- 21. 检测整个应用程序的服务器状态android
- 22. 启动处于不再可见状态的Android应用程序
- 23. 如何检测Android应用程序是否是游戏?
- 24. 如何判断JS Windows8 metro应用程序是否可见
- 25. 应用程序更新后是否可以恢复centralManager状态?
- 26. 是否可以在Android应用程序中实现Flex状态
- 27. 如何检测我的Android应用程序是否显示?
- 28. 是否有可能检测到应用程序的退出?
- 29. 是否有可能检测到Android应用程序的卸载?
- 30. 检查状态栏是否隐藏或可见