[英]Unity3D KeyCode.Home issue?
您好,我有一行代碼應在按下底部的三個硬件按鈕(如“菜單”,“首頁”,“后退”)后退出游戲,看來后背和首頁僅在起作用,但菜單在起作用
我有一台小米Redmi Note 4X手機,我應該如何解決此問題?
它與其他手機的“菜單”相同嗎?當您按下它時,它會顯示已打開的應用程序列表
這是代碼:
if (Input.GetKey (KeyCode.Home) || Input.GetKey (KeyCode.Escape) || Input.GetKey (KeyCode.Menu))
{
Save ();
System.Diagnostics.Process.GetCurrentProcess ().Kill ();
}
它與其他手機的“菜單”相同嗎?當您按下該菜單時,它將顯示打開的ap的列表
是。
我有一台小米Redmi Note 4X手機,我應該如何解決此問題?
它應該可以工作,否則它是一個錯誤,您應該提交一個錯誤請求。 在提交Abug請求之前,請使用以下腳本確保菜單鍵未映射到另一個鍵。
public class KeyCodeFinder : MonoBehaviour
{
public Text text;
Array allKeyCodes;
void Start()
{
allKeyCodes = System.Enum.GetValues(typeof(KeyCode));
}
void Update()
{
foreach (KeyCode tempKey in allKeyCodes)
{
if (Input.GetKeyDown(tempKey))
{
text.text = "Pressed: KeyCode." + tempKey;
Debug.Log("Pressed: KeyCode." + tempKey);
}
}
}
}
同時,您可以制作一個Java插件,該插件在按下菜單鍵代碼時調用C#函數。 那是您的另一種選擇。
這些按鈕與操作系統有關,您實際上無法控制這些按鈕的操作。 好了,您可以跟蹤它們並殺死您的應用程序,但這違背了每個應用程序的功能。 也就是說,如果您按下后退鍵或主頁鍵或退出鍵,它將返回到主OS頁面,但是您的應用仍在堆棧中,隨時可以返回。
如果您想在用戶退出時進行保存,也許您想調查一下
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnApplicationPause.html
這將使您的應用以更常見的方式運行。
附帶一提,我什至會假設這種過度控制應用程序的嘗試將被AppStore(iOS)拒絕,因為它不符合其通用要求。
始終可以映射到目前為止尚未映射的自定義KeyCode。
首先找出鑰匙有什么鑰匙編碼
Event e = Event.current;
if (e.isKey)
{
Debug.Log("Detected key code: " + e.keyCode);
}
假設這為您提供了10
作為鍵碼(到目前為止尚未在Unities KeyCode
映射的鍵KeyCode
)
您可以簡單地定義一個新的
KeyCode MY_HOME_BUTTON = (KeyCode) 10;
而不是像
if(Input.MY_HOME_BUTTON)
{
...
}
如果完全有可能捕獲到主頁按鈕,則取決於操作系統(大多數情況下,這些按鈕無法被應用捕獲,而是由操作系統首先處理)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.