[Unity3D]再次點擊以退出程序
本文介紹為Android應用編寫點擊返回按鍵時的"再次點擊以退出程序"的方法。
+BIT祝威+悄悄在此留下版了個權的信息說:
下面是一個測試用戶雙擊手機屏幕速度的app,拿來展示"Click again to quit app"這個功能是很清晰的。這個app的源碼包在(http://pan.baidu.com/s/1dDIobN7),APK在(http://pan.baidu.com/s/1hq1mV0S)。歡迎下載試用。
+BIT祝威+悄悄在此留下版了個權的信息說:
下面詳述制作步驟。你也可以直接下載源碼包,復制里面的TipToQuitApp對象,即粘即用。
創建uGUI
創建一個Text對象。
設置其各項屬性如下圖所示。
這里有個腳本ClickTwiceToQuitApp.cs,其代碼如下。
1 using UnityEngine; 2 using System.Collections; 3 4 public class ClickTwiceToQuitApp : MonoBehaviour { 5 6 public UnityEngine.UI.Text tipTextBox; 7 public string tip = "Click again to quit app"; 8 public float fadingSpeed = 1; 9 private bool fading; 10 private float startFadingTime; 11 private Color originalColor; 12 private Color transparentColor; 13 14 // Use this for initialization 15 void Start() 16 { 17 originalColor = tipTextBox.color; 18 transparentColor = originalColor; 19 transparentColor.a = 0; 20 tipTextBox.text = tip; 21 tipTextBox.color = transparentColor; 22 } 23 24 // Update is called once per frame 25 void Update() 26 { 27 if (Input.GetKeyDown(KeyCode.Escape)) 28 { 29 if (startFadingTime == 0) 30 { 31 tipTextBox.color = originalColor; 32 startFadingTime = Time.time; 33 fading = true; 34 } 35 else 36 { 37 Application.Quit(); 38 } 39 } 40 41 if (fading) 42 { 43 tipTextBox.color = Color.Lerp(originalColor, transparentColor, (Time.time - startFadingTime) * fadingSpeed);//顏色以線性速度透明掉 44 45 if (tipTextBox.color.a < 2.0 / 255) 46 { 47 tipTextBox.color = transparentColor; 48 startFadingTime = 0; 49 fading = false; 50 } 51 } 52 } 53 }
檢測返回鍵
+BIT祝威+悄悄在此留下版了個權的信息說:
上面代碼中的 Input.GetKeyDown(KeyCode.Escape); 既能夠檢測PC鍵盤的Esc鍵,又能夠檢測Android手機的返回按鍵。