今天要新增一個按Esc實行關閉遊戲的功能,製作這個功能的用法當然要告訴玩家啦!
利用canvas的text ,文字在視窗上顯示"關閉視窗 請按ESC"。
首先創建一個Canvas,再於底下創建Text。(可以直接創建Text,系統會自動添加Canvas)
添加好Canvas後,會發現原本的地圖變很小,canvas很大很大!不要懷疑是不是電腦出問題或是跑版,這是因為canvas和地圖的渲染不同,canvas最後會整個蓋住原本的視窗。
調整視窗比例 Game→Free Aspect
如果沒有要固定比例,就要注意canvas跑板問題
簡單的解決方法是到Canvas Scaler → Canvas Scaler 選擇 Scale With Screen Size
如此一來canvas會根據視窗大小自己做伸縮
建立好Canvas之後就可以新增text子物件啦~
新增之後可以手動調整位置,或是輸入值,UI介面還有提供幾種排版方式(此篇先不討論)。
到Inspector下的Text可以修改文字內容。
Font可以調整字體、粗斜體、大小。
color可以挑選顏色。
提示說明新增完畢!
Application是UnityEngine命名空間中的class
public static void Quit(); //Application class內的方法 Quit()
接下來寫離開遊戲功能,結合Input來實作
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class quitGame : MonoBehaviour
{
void Update()
{
//按下esc鍵
if(Input.GetKeyDown("escape")){
Debug.Log("quit"); //主控台顯示quit
Application.Quit(); //關閉應用程式
}
}
}
這個功能要在build之後才看的到效果,遊戲程式會直接關閉退回桌面。然而編輯模式,按下開始執行遊戲後使用這個功能,會發現沒有作用,畫面仍然會停留在執行中。
如果想在編輯效果中暫停,可以使用EditorApplication,但是要注意未來在輸出遊戲時要記得拿掉。
EditorApplication是在UnityEditor命名空間中的class,和Application不一樣。
停止遊戲執行也不是使用方法,而是一個bool值,負責監測遊戲是否執行中。
public static bool isPlaying;
按下執行的時候public static bool isPlaying="true";
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class quitGame : MonoBehaviour
{
void Update()
{
//按下esc鍵
if(Input.GetKeyDown("escape")){
Debug.Log("quit"); //主控台顯示quit
Application.Quit(); //關閉應用程式
EditorApplication.isPlaying="false";
}
}
}
今天靜態添加文字,明天來寫腳本改變文字吧!