有沒有解決方案來檢測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. 檢查狀態欄是否隱藏或可見