簡體   English   中英

Unity3D KeyCode.Home問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM