iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0

今天要新增一個按Esc實行關閉遊戲的功能,製作這個功能的用法當然要告訴玩家啦!
利用canvas的text ,文字在視窗上顯示"關閉視窗 請按ESC"。

Canvas

首先創建一個Canvas,再於底下創建Text。(可以直接創建Text,系統會自動添加Canvas)
1.png

添加好Canvas後,會發現原本的地圖變很小,canvas很大很大!不要懷疑是不是電腦出問題或是跑版,這是因為canvas和地圖的渲染不同,canvas最後會整個蓋住原本的視窗。
2.png

調整視窗比例 Game→Free Aspect
3.png

如果沒有要固定比例,就要注意canvas跑板問題
簡單的解決方法是到Canvas Scaler → Canvas Scaler 選擇 Scale With Screen Size
3.5.png

如此一來canvas會根據視窗大小自己做伸縮

Text

建立好Canvas之後就可以新增text子物件啦~
4.png

新增之後可以手動調整位置,或是輸入值,UI介面還有提供幾種排版方式(此篇先不討論)。
5.png

到Inspector下的Text可以修改文字內容。
Font可以調整字體、粗斜體、大小。
6.png

color可以挑選顏色。
7.png

提示說明新增完畢!
8.png

離開遊戲

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";
            }
    }
}

今天靜態添加文字,明天來寫腳本改變文字吧!


上一篇
12.unity使用者輸入(GetKey與GetButton)
下一篇
14.unity變數傳遞(上)記分板
系列文
用unity製作2DRPG雛形-沒有大野狼的小紅帽30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言