国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
創(chuàng)建暫停的按鈕
創(chuàng)建菜單
>我們應(yīng)該保存當(dāng)前的場(chǎng)景并打開(kāi)播放場(chǎng)景。播放場(chǎng)景打開(kāi),我們可以創(chuàng)建一個(gè)文本對(duì)象并將其命名為“ ScoreText”。得分文本對(duì)象應(yīng)與屏幕頂部對(duì)齊。通過(guò)選擇的分?jǐn)?shù)文本對(duì)象,我們可以通過(guò)查看RECT變換屬性并單擊錨點(diǎn)菜單來(lái)添加頂部拉伸錨點(diǎn)。我們還應(yīng)該將文本置于中心并使其為白色。
>
如何在UI元素中添加聲音效果? >
>如何使我的UI響應(yīng)統(tǒng)一的不同屏幕尺寸?
>優(yōu)化UI以統(tǒng)一性的性能涉及各種策略,例如最大程度地減少?gòu)?fù)雜圖形的使用,避免不必要的更新,并使用Canvas Scaleer來(lái)減少分辨率您在低端設(shè)備上的UI。 Unity的Profiler工具可以是確定UI中性能瓶頸的寶貴資源。
首頁(yè) 科技周邊 IT業(yè)界 在Unity中添加暫停,主菜單和游戲

在Unity中添加暫停,主菜單和游戲

Feb 19, 2025 am 10:44 AM

在Unity中添加暫停,主菜單和游戲

在玩游戲時(shí)可以看到什么按鈕,文本,下拉列表等?所有這些都是所謂的用戶界面(UI)的一部分。大多數(shù)游戲都具有某種UI,這使玩家更容易在級(jí)別之間切換并激活某些控件(例如暫停游戲或重新啟動(dòng)級(jí)別)。在上一篇描述如何創(chuàng)建Dodger的文章中,我們創(chuàng)建了一個(gè)小按鈕,以刷新游戲,如果玩家丟失了。 在本教程中,我們將將其提升到一個(gè)新的水平,并允許用戶暫?;蛑匦聠?dòng)游戲并在不同場(chǎng)景之間切換。我們還將研究如何僅在某些時(shí)間顯示某些UI元素 - 例如游戲暫?;蛲婕宜劳?失敗時(shí)。

>大多數(shù)游戲都包含暫停菜單,屏幕上的游戲和主菜單。由于這些是“完成”游戲所需的幾個(gè)元素中的一些,因此我們將將所有三個(gè)元素插入我們的躲避克隆中。此外,我們還將創(chuàng)建一個(gè)指令屏幕,以便玩家能夠在開(kāi)始玩游戲之前可以學(xué)習(xí)可以使用的控件。在Unity中添加暫停,主菜單和游戲>

完整的游戲可以在itch.io中玩

鑰匙要點(diǎn)

>通過(guò)提供必需的UI控件和場(chǎng)景管理來(lái)實(shí)現(xiàn)Unity的屏幕上的暫停,主菜單和游戲。

>使用`time.timescale`控制游戲狀態(tài),將其設(shè)置為0暫停游戲,然后恢復(fù)1個(gè),啟用有效的暫停菜單功能。
    >
  • >創(chuàng)建不同游戲狀態(tài)的不同的UI元素,例如按鈕和文本,并使用諸如“ ShowonPause”之類(lèi)的標(biāo)簽來(lái)管理其可見(jiàn)性。
  • >開(kāi)發(fā)一個(gè)主菜單場(chǎng)景,其中包含啟動(dòng)游戲的選項(xiàng),利用``sceemanager''進(jìn)行場(chǎng)景過(guò)渡來(lái)增強(qiáng)用戶導(dǎo)航。
  • >使用碰撞檢測(cè)和UI更新將屏幕上的游戲與分?jǐn)?shù)顯示和重新啟動(dòng)選項(xiàng)合并,以告知玩家游戲End。
  • 創(chuàng)建基本暫停屏幕
  • >暫停屏幕具有一組通用的控件,玩家可以使用該控件來(lái)重新啟動(dòng)一個(gè)級(jí)別,轉(zhuǎn)到主菜單或取消游戲。暫停屏幕僅在暫停游戲時(shí)才能看到。一般而言,我們可以使用Times.Timescale來(lái)區(qū)分暫停和未陷入困境的游戲。如果時(shí)間尺度為零,則游戲?qū)⒈粫和?。如果大于零,則該游戲?qū)⒉粫?huì)引起(我們稍后將討論)。讓我們開(kāi)始!
創(chuàng)建暫停文本

首先,我們將需要?jiǎng)?chuàng)建一個(gè)標(biāo)題,該標(biāo)題告訴玩家暫停游戲。我們應(yīng)該通過(guò)在層次結(jié)構(gòu)窗格中右鍵單擊并選擇UI->文本來(lái)創(chuàng)建一個(gè)文本對(duì)象。讓我們命名新創(chuàng)建的對(duì)象pauseText。

我們需要?jiǎng)?chuàng)建一個(gè)標(biāo)題,該標(biāo)題告訴玩家暫停游戲。我們應(yīng)該通過(guò)在層次結(jié)構(gòu)窗格中右鍵單擊并選擇UI->文本來(lái)創(chuàng)建一個(gè)文本對(duì)象。讓我們命名新創(chuàng)建的對(duì)象pauseText。

>現(xiàn)在我們可以格式化文本對(duì)象,以使其在游戲屏幕中看起來(lái)更好。為了更改文本對(duì)象的文本,我們必須在“新文本”單詞所在的文本屬性下單擊“檢查器”窗格。在文本屬性中,我們可以將暫停文本的文本更改為“暫?!薄榱吮3钟螒虻呐渖桨?,我們應(yīng)該將文本的顏色更改為白色。這可以通過(guò)在顏色對(duì)象(可以選擇黑色或其他顏色)下單擊并選擇白色來(lái)實(shí)現(xiàn)。

>

在Unity中添加暫停,主菜單和游戲

>讓我們調(diào)整文本的位置。暫停文本應(yīng)水平集中在屏幕上,并位于游戲屏幕的最高三分之一??梢酝ㄟ^(guò)更改RECT變換屬性內(nèi)部的x和y的值或使用Unity編輯器左上角的鼠標(biāo)控件中的四個(gè)方式箭頭來(lái)移動(dòng)暫停文本。如果需要或需要,我們還可以通過(guò)更改值和更改寬度和高度屬性的大?。ㄔ赗ect Transform下)來(lái)更改文本大小。

>

>我們現(xiàn)在要做的就是標(biāo)記對(duì)象,以便在添加代碼后的程序?qū)⒛軌蛘f(shuō)我們只希望該對(duì)象顯示游戲何時(shí)暫停。我們可以單擊“暫停文本”的名稱(chēng),其中顯示“未標(biāo)記”,然后單擊“添加標(biāo)簽……”?,F(xiàn)在,我們可以創(chuàng)建一個(gè)名為“ ShowonPause”的標(biāo)簽。創(chuàng)建此標(biāo)簽后,我們需要將其添加到暫停文本中。

>

創(chuàng)建暫停的按鈕

>由于我們創(chuàng)建了暫停文本并為游戲?qū)ο筇砑恿艘粋€(gè)新標(biāo)簽,該標(biāo)簽應(yīng)該在暫停游戲時(shí)出現(xiàn),因此我們可以開(kāi)始創(chuàng)建構(gòu)成暫停游戲菜單的按鈕。

>我們將創(chuàng)建三個(gè)不同的按鈕:播放按鈕,重新啟動(dòng)按鈕和主菜單按鈕。播放按鈕將取消游戲,重新啟動(dòng)按鈕將重新啟動(dòng)游戲,并且主菜單按鈕將使玩家重新回到游戲的主菜單場(chǎng)景。

開(kāi)始,讓我們從創(chuàng)建一個(gè)新按鈕(右鍵單擊層次結(jié)構(gòu) - > ui->按鈕),然后將其命名為“ PlayButton”。我們應(yīng)該將播放按鈕的標(biāo)簽設(shè)置為ShowonPause,以便僅在暫停游戲時(shí)才顯示它?,F(xiàn)在,讓我們將播放按鈕的文本設(shè)置為“播放”。這可以通過(guò)在檢查員中打開(kāi)文本子對(duì)象(單擊層次結(jié)構(gòu)中的播放按鈕旁邊的下拉列表,然后選擇文本對(duì)象),然后將文本屬性更改為“ play”。我們應(yīng)該將播放按鈕與屏幕的中心對(duì)齊,以便它在暫停文本下。

創(chuàng)建其他兩個(gè)按鈕的快速方法是在層次結(jié)構(gòu)中選擇“播放”按鈕,并兩次重復(fù)(命令 / ctrl d)。我們可以將新按鈕命名為“ RestartButton”和“ Mainmenubutton”。我們還應(yīng)該給每個(gè)新按鈕提供適當(dāng)?shù)奈谋?。重新啟?dòng)按鈕應(yīng)表示“重新啟動(dòng)”,主菜單按鈕應(yīng)為“主菜單”?,F(xiàn)在,讓我們刪除上一個(gè)教程中創(chuàng)建的刷新按鈕。現(xiàn)在我們可以看到我們有一個(gè)基本的暫停菜單。但是,菜單什么也沒(méi)做任何事情,因?yàn)槲覀冞€沒(méi)有將任何代碼附加到對(duì)象上。

>

在Unity中添加暫停,主菜單和游戲

>讓我們打開(kāi)上一個(gè)教程中創(chuàng)建的uimanager腳本。我們應(yīng)該編輯我們的uimanager腳本,以使其看起來(lái)像下面的代碼。

>
GameObject<span>[] pauseObjects;
</span>
	<span>// Use this for initialization
</span>	<span>void Start () {
</span>		Time<span>.timeScale = 1;
</span>		pauseObjects <span>= GameObject.FindGameObjectsWithTag("ShowOnPause");
</span>		<span>hidePaused();
</span>	<span>}
</span>
	<span>// Update is called once per frame
</span>	<span>void Update () {
</span>
		<span>//uses the p button to pause and unpause the game
</span>		<span>if(Input.GetKeyDown(KeyCode.P))
</span>		<span>{
</span>			<span>if(Time.timeScale == 1)
</span>			<span>{
</span>				Time<span>.timeScale = 0;
</span>				<span>showPaused();
</span>			<span>} else if (Time.timeScale == 0){
</span>				Debug<span>.Log ("high");
</span>				Time<span>.timeScale = 1;
</span>				<span>hidePaused();
</span>			<span>}
</span>		<span>}
</span>	<span>}
</span>

	<span>//Reloads the Level
</span>	public <span>void Reload(){
</span>		Application<span>.LoadLevel(Application.loadedLevel);
</span>	<span>}
</span>
	<span>//controls the pausing of the scene
</span>	public <span>void pauseControl(){
</span>			<span>if(Time.timeScale == 1)
</span>			<span>{
</span>				Time<span>.timeScale = 0;
</span>				<span>showPaused();
</span>			<span>} else if (Time.timeScale == 0){
</span>				Time<span>.timeScale = 1;
</span>				<span>hidePaused();
</span>			<span>}
</span>	<span>}
</span>
	<span>//shows objects with ShowOnPause tag
</span>	public <span>void showPaused(){
</span>		<span>foreach(GameObject g in pauseObjects){
</span>			g<span>.SetActive(true);
</span>		<span>}
</span>	<span>}
</span>
	<span>//hides objects with ShowOnPause tag
</span>	public <span>void hidePaused(){
</span>		<span>foreach(GameObject g in pauseObjects){
</span>			g<span>.SetActive(false);
</span>		<span>}
</span>	<span>}
</span>
	<span>//loads inputted level
</span>	public <span>void LoadLevel(string level){
</span>		Application<span>.LoadLevel(level);
</span>	<span>}
</span>

>現(xiàn)在,我們已經(jīng)有了可以在Uimanager腳本中訪問(wèn)的代碼,我們可以返回Unity。在Unity內(nèi)部,讓我們選擇“播放”按鈕,然后將PauseControl方法附加到它。為此,我們可以選擇“播放”按鈕并將Uimanager Game對(duì)象拖到Inspector Pane中OnClick()屬性下的游戲?qū)ο罂臻g上。添加了Uimanager游戲?qū)ο螅覀儸F(xiàn)在可以使用第二個(gè)下拉列表選擇PauseControl函數(shù)(uimanager-> pausecontrol)。

>

>使用相同的步驟,我們可以將Reload()方法添加到重新啟動(dòng)按鈕和LoadLevel()方法到主菜單按鈕。由于LoadLevel()方法采用字符串參數(shù),因此我們應(yīng)該在函數(shù)下拉列表下的框中鍵入“ mainmenu”。

>

在Unity中添加暫停,主菜單和游戲

>如果我們現(xiàn)在打播放,我們會(huì)注意到播放和重新啟動(dòng)按鈕可以正常工作。另外,如果我們?cè)谟螒蛲嬗螒驎r(shí)達(dá)到P,我們就可以暫停并取消游戲。唯一的問(wèn)題是主菜單按鈕不起作用。這是因?yàn)槲覀冞€沒(méi)有在構(gòu)建設(shè)置中添加名為“ Mainmenu”的場(chǎng)景。

創(chuàng)建主菜單場(chǎng)景

創(chuàng)建場(chǎng)景

>在播放場(chǎng)景中創(chuàng)建的暫停菜單后,我們現(xiàn)在可以創(chuàng)建一個(gè)新的場(chǎng)景,該場(chǎng)景將充當(dāng)游戲的主菜單。我們將創(chuàng)建的主菜單將很簡(jiǎn)單,并且只包含一個(gè)播放按鈕,該按鈕將使玩家進(jìn)入播放場(chǎng)景。

首先,我們應(yīng)該保存我們正在工作的當(dāng)前場(chǎng)景,以便我們完成的工作不會(huì)被刪除。讓我們創(chuàng)建一個(gè)新場(chǎng)景(命令 / ctrl n或file->新場(chǎng)景)。場(chǎng)景打開(kāi)后,保存并將其命名為“ Mainmenu”。

>

在Unity中添加暫停,主菜單和游戲>

注意:我們將其命名為“ Mainmenu”,因?yàn)檫@是我們?cè)诓シ艌?chǎng)景中設(shè)置主菜單按鈕的字符串屬性。如果我們想要一個(gè)其他名稱(chēng),那么我們可以更改play場(chǎng)景中主菜單按鈕附加的LoadLevel()函數(shù)的字符串屬性。

創(chuàng)建菜單

>現(xiàn)在已經(jīng)保存了場(chǎng)景,我們可以開(kāi)始對(duì)其進(jìn)行努力。讓我們從選擇主攝像機(jī)游戲?qū)ο蟛⑵浔尘案臑榕c游戲場(chǎng)景相同的顏色(R:0,G:223,B:255)。 在此場(chǎng)景中,我們將需要能夠訪問(wèn)Uimanager腳本中的LoadLevel()方法。這意味著我們需要?jiǎng)?chuàng)建一個(gè)uimanager游戲?qū)ο蟛imanager腳本附加到它,以便我們可以將功能添加到我們的按鈕中。

>

>讓我們創(chuàng)建一個(gè)空的游戲?qū)ο螅ㄔ趯哟谓Y(jié)構(gòu)中右鍵單擊 - >“創(chuàng)建空”),然后將其命名為Uimanager?,F(xiàn)在,我們可以將Uimanager腳本添加到Uimanager游戲?qū)ο笾小?ancy>>

>我們可以開(kāi)始創(chuàng)建一個(gè)簡(jiǎn)單的菜單,該菜單包含文本,其中包含“躲避”和播放按鈕。我們將首先創(chuàng)建文本(右鍵單擊層次結(jié)構(gòu) - > ui->文本),然后將其命名為“ Titletlext”。我們應(yīng)該更改文本以說(shuō)“躲閃”,然后將其對(duì)齊到屏幕的中心,朝向頂部。現(xiàn)在,讓我們將標(biāo)題文本的顏色設(shè)置為白色。

>使用創(chuàng)建和編輯的文本,我們可以創(chuàng)建一個(gè)新按鈕并將其命名為“ PlayButton”。我們應(yīng)該將播放按鈕的子對(duì)象的文本更改為“播放”。最后,讓我們將Uimanager Game對(duì)象添加到按鈕的OnClick()屬性中,然后選擇LoadLevel()函數(shù)。 LOADLEVEL()函數(shù)的參數(shù)取決于上一個(gè)教程中播放場(chǎng)景的名稱(chēng)。我們可以通過(guò)在Assets Pane中找到場(chǎng)景來(lái)找到游戲場(chǎng)景的名稱(chēng)。

如果我們運(yùn)行游戲并點(diǎn)擊播放按鈕,我們會(huì)注意到該按鈕不起作用。原因與主菜單按鈕在我們的播放場(chǎng)景中不起作用時(shí)相同:我們尚未將Mainmenu場(chǎng)景添加到構(gòu)建設(shè)置中。要將當(dāng)前場(chǎng)景添加到構(gòu)建設(shè)置中,我們可以打開(kāi)構(gòu)建設(shè)置(文件 - >構(gòu)建設(shè)置),然后單擊“添加當(dāng)前”。

>完成游戲在Unity中添加暫停,主菜單和游戲

為了使游戲被視為“完成”,需要在屏幕上進(jìn)行游戲,以便玩家能夠分辨出他們何時(shí)輸了。我們還將在游戲中添加分?jǐn)?shù)計(jì)數(shù)器,因此玩家將知道他們的得分高。

添加分?jǐn)?shù)

>我們應(yīng)該保存當(dāng)前的場(chǎng)景并打開(kāi)播放場(chǎng)景。播放場(chǎng)景打開(kāi),我們可以創(chuàng)建一個(gè)文本對(duì)象并將其命名為“ ScoreText”。得分文本對(duì)象應(yīng)與屏幕頂部對(duì)齊。通過(guò)選擇的分?jǐn)?shù)文本對(duì)象,我們可以通過(guò)查看RECT變換屬性并單擊錨點(diǎn)菜單來(lái)添加頂部拉伸錨點(diǎn)。我們還應(yīng)該將文本置于中心并使其為白色。

我們將用來(lái)更新分?jǐn)?shù)的條件將是從屏幕上脫離屏幕的塊(這意味著玩家已經(jīng)躲避的塊)。為了使這種情況保持活躍

>讓我們創(chuàng)建一個(gè)空的游戲?qū)ο蟛⑵涿麨椤?Bottomborder”。我們?cè)诘撞窟吙蛑刑砑恿艘粋€(gè)BoxCollider2D,并將X尺寸設(shè)置為一個(gè)略微超過(guò)相機(jī)邊界的大數(shù)字?,F(xiàn)在,我們可以在底部邊框?qū)ο笾刑砑右粋€(gè)剛體2D,并將重力刻度屬性設(shè)置為0,以免底部邊框?qū)ο舐湎隆N覀兛梢詫⒌撞窟吙驅(qū)ο笊晕?duì)準(zhǔn)播放器下方,以確保其不在屏幕上。>

>我們需要?jiǎng)?chuàng)建一個(gè)新腳本才能為玩家設(shè)置分?jǐn)?shù)。讓我們?cè)谀_本文件夾中創(chuàng)建一個(gè)名為“ PointCounter”的新C#腳本。一旦創(chuàng)建了點(diǎn)counter腳本,我們就可以在我們的IDE中打開(kāi)它:

>

>
GameObject<span>[] pauseObjects;
</span>
	<span>// Use this for initialization
</span>	<span>void Start () {
</span>		Time<span>.timeScale = 1;
</span>		pauseObjects <span>= GameObject.FindGameObjectsWithTag("ShowOnPause");
</span>		<span>hidePaused();
</span>	<span>}
</span>
	<span>// Update is called once per frame
</span>	<span>void Update () {
</span>
		<span>//uses the p button to pause and unpause the game
</span>		<span>if(Input.GetKeyDown(KeyCode.P))
</span>		<span>{
</span>			<span>if(Time.timeScale == 1)
</span>			<span>{
</span>				Time<span>.timeScale = 0;
</span>				<span>showPaused();
</span>			<span>} else if (Time.timeScale == 0){
</span>				Debug<span>.Log ("high");
</span>				Time<span>.timeScale = 1;
</span>				<span>hidePaused();
</span>			<span>}
</span>		<span>}
</span>	<span>}
</span>

	<span>//Reloads the Level
</span>	public <span>void Reload(){
</span>		Application<span>.LoadLevel(Application.loadedLevel);
</span>	<span>}
</span>
	<span>//controls the pausing of the scene
</span>	public <span>void pauseControl(){
</span>			<span>if(Time.timeScale == 1)
</span>			<span>{
</span>				Time<span>.timeScale = 0;
</span>				<span>showPaused();
</span>			<span>} else if (Time.timeScale == 0){
</span>				Time<span>.timeScale = 1;
</span>				<span>hidePaused();
</span>			<span>}
</span>	<span>}
</span>
	<span>//shows objects with ShowOnPause tag
</span>	public <span>void showPaused(){
</span>		<span>foreach(GameObject g in pauseObjects){
</span>			g<span>.SetActive(true);
</span>		<span>}
</span>	<span>}
</span>
	<span>//hides objects with ShowOnPause tag
</span>	public <span>void hidePaused(){
</span>		<span>foreach(GameObject g in pauseObjects){
</span>			g<span>.SetActive(false);
</span>		<span>}
</span>	<span>}
</span>
	<span>//loads inputted level
</span>	public <span>void LoadLevel(string level){
</span>		Application<span>.LoadLevel(level);
</span>	<span>}
</span>
>現(xiàn)在,讓我們創(chuàng)建一個(gè)名為“ PointUpdater”的腳本,該腳本將更新分?jǐn)?shù)文本。我們可以在IDE和類(lèi)型中打開(kāi)pointupdater腳本:

>

我們應(yīng)該將PointUpDater腳本添加到得分文本游戲?qū)ο笾小5撞窟吙蛴螒驅(qū)ο髴?yīng)添加到點(diǎn)計(jì)數(shù)器值中,以便可以更新分?jǐn)?shù)。>

>通過(guò)菜單創(chuàng)建游戲
public <span>int score;
</span>
	<span>// Use this for initialization
</span>	<span>void Start () {
</span>		score <span>= 0;
</span>	<span>}
</span>
	<span>// Update is called once per frame
</span>	<span>void Update () {
</span>
	<span>}
</span>
	<span>//checks for entering a trigger
</span>	<span>void OnTriggerEnter2D(Collider2D other){
</span>		<span>//checks other collider's tag
</span>		<span>if(other.gameObject.tag == "Enemy"){
</span>			score<span>++;								//increments score
</span>			<span>Destroy (other.gameObject);				//destroys other collider's gameobject
</span>		<span>}
</span>	<span>}
</span>
為了完成游戲,我們需要在玩家死亡時(shí)出現(xiàn)的菜單上添加一個(gè)游戲。

>讓我們?cè)谖覀兊腎DE中打開(kāi)PlayerController腳本,下面是最后一個(gè)變量聲明添加:

>內(nèi)部的敵方腳本腳本,讓我們添加:

>

開(kāi)始播放菜單,我們可以創(chuàng)建一個(gè)新的文本游戲?qū)ο蟛⑵涿麨椤?GameOverText”。文本應(yīng)設(shè)置為“游戲”,文本顏色應(yīng)為白色。我們應(yīng)該將游戲通過(guò)文本對(duì)齊,以略高于屏幕中心的上方。為了確保只有在玩家死亡時(shí)才會(huì)出現(xiàn)此菜單,我們應(yīng)該創(chuàng)建一個(gè)名為“ ShowonFinish”的新標(biāo)簽,并通過(guò)文本將其添加到游戲中。

public PointCounter pointCounter<span>;
</span>	<span>// Use this for initialization
</span>	<span>void Start () {
</span>		text <span>= gameObject.GetComponent<Text>();
</span>    text<span>.text = "Score: 0";
</span>	<span>}
</span>
	<span>// Update is called once per frame
</span>	<span>void Update () {
</span>		text<span>.text = "Score: " + pointCounter.score.ToString();
</span>
	<span>}
</span>
現(xiàn)在,讓我們復(fù)制重新啟動(dòng)和主菜單按鈕。我們應(yīng)該將按鈕重命名為“ FinrestartButon”和“ FinmainMenubutton”,然后將ShowonFinish標(biāo)簽添加到兩個(gè)按鈕中。

>

>最后,讓我們?cè)贗DE中打開(kāi)Uimanager腳本并進(jìn)行編輯,以使其看起來(lái)像下面的代碼。
public bool alive<span>;
</span>	<span>// Use this for initialization
</span>	<span>void Start () {
</span>		alive <span>= true;
</span>	<span>}
</span>

結(jié)論

>我們現(xiàn)在已經(jīng)為游戲添加了一個(gè)簡(jiǎn)單的UI?,F(xiàn)在,玩家將能夠使用按鈕在兩個(gè)場(chǎng)景中移動(dòng)。我們還獲得了模塊化統(tǒng)一開(kāi)發(fā)和干燥編碼的經(jīng)驗(yàn)(不要自行重復(fù))。我們創(chuàng)建得分文本的方式是一個(gè)很好的例子,說(shuō)明了如何將統(tǒng)一代碼分配以使其可回收。
<span>void OnTriggerEnter2D(Collider2D other){
</span>
  <span>//Checks if other gameobject has a Tag of Player
</span>  <span>if(other.gameObject.tag == "Player"){
</span>    other<span>.gameObject.GetComponent<PlayerController>().alive = false;
</span>    Time<span>.timeScale = 0;
</span>  <span>}
</span><span>}
</span>

>問(wèn)題?評(píng)論?請(qǐng)把它們留在下面!在Unity中添加暫停,主菜單和游戲>

完成的項(xiàng)目可以從GitHub下載。

>

>在Unity中添加暫停,主菜單和游戲的常見(jiàn)問(wèn)題(常見(jiàn)問(wèn)題解答)

>如何添加Unity的暫停按鈕?

>在Unity中添加暫停按鈕涉及創(chuàng)建UI按鈕并將腳本附加到控制游戲時(shí)間尺度的腳本。時(shí)間尺度是一個(gè)全球乘數(shù),會(huì)影響游戲時(shí)間進(jìn)步的速度。通過(guò)將其設(shè)置為零,您可以有效地暫停游戲。暫停按鈕附加的腳本應(yīng)包含一個(gè)函數(shù),該函數(shù)在單擊按鈕時(shí)切換時(shí)間尺度(正常速度)和0(暫停)。

如何創(chuàng)建Unity的主菜單?>>我如何通過(guò)unity添加游戲? Unity的屏幕類(lèi)似于添加主菜單。您需要?jiǎng)?chuàng)建一個(gè)新場(chǎng)景,該場(chǎng)景將用作屏幕上的游戲,并配有為玩家提供選項(xiàng)的UI元素,例如重新啟動(dòng)游戲或返回主菜單。這些元素應(yīng)附加附加腳本,該腳本在單擊時(shí)執(zhí)行適當(dāng)?shù)牟僮鳌?p>

>如何使用SceneManager類(lèi)來(lái)完成Unity的場(chǎng)景之間的過(guò)渡?此類(lèi)提供用于加載和卸載場(chǎng)景的功能,以及查詢有關(guān)當(dāng)前場(chǎng)景的信息。要過(guò)渡到新場(chǎng)景,您可以使用SceneManager.loadScene函數(shù),以要加載的場(chǎng)景的名稱(chēng)或索引傳遞。

>

如何自定義UI元素的外觀?

Unity提供了多種選擇,以自定義UI元素的外觀。您可以在Unity編輯器中直接調(diào)整顏色,大小和位置等屬性。對(duì)于更高級(jí)的自定義,您可以使用UI系統(tǒng)的功能強(qiáng)大的動(dòng)畫(huà)功能,甚至可以通過(guò)擴(kuò)展現(xiàn)有類(lèi)來(lái)創(chuàng)建自己的自定義UI組件。

如何在UI元素中添加聲音效果? >

>可以通過(guò)將AudioSource組件附加到元素上并在與元素進(jìn)行配置時(shí)將聲音效果添加到UI元素中,并在與該元素進(jìn)行交互時(shí)播放聲音。例如,您可以在按下按鈕時(shí)配置一個(gè)按鈕以播放單擊聲。

>如何使我的UI響應(yīng)統(tǒng)一的不同屏幕尺寸?

Unity的UI系統(tǒng)包含一個(gè)稱(chēng)為Canvas Scaleer的功能,該功能使創(chuàng)建UI易于制作并調(diào)整到不同屏幕尺寸的UI。通過(guò)將Canvas Scaleer的UI量表模式設(shè)置為“與屏幕尺寸進(jìn)行縮放”,您可以確保您的UI元素在不同設(shè)備上保持一致的尺寸和布局。

如何統(tǒng)一測(cè)試我的UI? 可以直接在Unity編輯器中進(jìn)行UI測(cè)試UI。游戲視圖提供了您游戲的實(shí)時(shí)預(yù)覽,包括任何UI元素。您可以像玩家在實(shí)際游戲中一樣在游戲視圖中與UI進(jìn)行互動(dòng),從而可以測(cè)試功能并檢查任何問(wèn)題。

>

如何優(yōu)化我的UI以u(píng)nity的性能? >

>優(yōu)化UI以統(tǒng)一性的性能涉及各種策略,例如最大程度地減少?gòu)?fù)雜圖形的使用,避免不必要的更新,并使用Canvas Scaleer來(lái)減少分辨率您在低端設(shè)備上的UI。 Unity的Profiler工具可以是確定UI中性能瓶頸的寶貴資源。

>

>我如何了解有關(guān)Unity的UI系統(tǒng)的更多信息? API參考和最佳實(shí)踐。此外,在許多在線社區(qū)和資源中,您可以從其他Unity開(kāi)發(fā)人員那里學(xué)習(xí),例如Unity論壇,堆棧溢出和各種教程網(wǎng)站。

以上是在Unity中添加暫停,主菜單和游戲的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

SaaS的5個(gè)最佳支付門(mén)戶:您的最終指南 SaaS的5個(gè)最佳支付門(mén)戶:您的最終指南 Jun 29, 2025 am 08:28 AM

付款網(wǎng)關(guān)是付款過(guò)程的關(guān)鍵組成部分,使企業(yè)能夠在線接受付款。它充當(dāng)客戶與商人之間的橋梁,安全地傳輸付款信息并促進(jìn)交易。 為了

用于購(gòu)買(mǎi)SSL證書(shū)的經(jīng)濟(jì)有效的轉(zhuǎn)售商平臺(tái) 用于購(gòu)買(mǎi)SSL證書(shū)的經(jīng)濟(jì)有效的轉(zhuǎn)售商平臺(tái) Jun 25, 2025 am 08:28 AM

在一個(gè)在線信任不可談判的世界中,SSL證書(shū)對(duì)于每個(gè)網(wǎng)站都至關(guān)重要。 SSL認(rèn)證的市場(chǎng)規(guī)模在2024年價(jià)值56億美元,并且由于電子商務(wù)業(yè)務(wù)的激增而推動(dòng)了強(qiáng)勁的增長(zhǎng)

新研究聲稱(chēng)AI比我們更好地'理解”情緒。特別是在情感上充滿電的情況下 新研究聲稱(chēng)AI比我們更好地'理解”情緒。特別是在情感上充滿電的情況下 Jul 03, 2025 pm 05:48 PM

在我們認(rèn)為人類(lèi)始終超越機(jī)器的領(lǐng)域的另一個(gè)挫折中,研究人員現(xiàn)在建議AI比我們更好地理解情感。研究人員發(fā)現(xiàn)人工智能證明了一個(gè)

由于新的Microsoft AI型號(hào) 由于新的Microsoft AI型號(hào) Jul 05, 2025 am 12:44 AM

一種新的人工智能(AI)模型已經(jīng)證明了比幾個(gè)使用最廣泛使用的全球預(yù)測(cè)系統(tǒng)更快,更精確地預(yù)測(cè)重大天氣事件的能力。該名為Aurora的模型已接受過(guò)培訓(xùn)。

您的設(shè)備喂養(yǎng)AI助手并收集個(gè)人數(shù)據(jù),即使他們睡著了。這是如何知道您分享的內(nèi)容。 您的設(shè)備喂養(yǎng)AI助手并收集個(gè)人數(shù)據(jù),即使他們睡著了。這是如何知道您分享的內(nèi)容。 Jul 05, 2025 am 01:12 AM

不管喜歡與否,人工智能已成為日常生活的一部分。許多設(shè)備(包括電動(dòng)剃須刀和牙刷)已成為AI驅(qū)動(dòng)的“使用機(jī)器學(xué)習(xí)算法來(lái)跟蹤一個(gè)人的使用方式,Devi的方式

高級(jí)AI型號(hào)的CO&#8322;回答相同問(wèn)題時(shí)的排放量比更常見(jiàn)的LLM 高級(jí)AI型號(hào)的CO&#8322;回答相同問(wèn)題時(shí)的排放量比更常見(jiàn)的LLM Jul 06, 2025 am 12:37 AM

根據(jù)最近的一項(xiàng)研究,我們?cè)噲D使AI模型的功能越精確,其碳排放量就越大 - 某些提示產(chǎn)生的二氧化碳比其他提示高達(dá)50倍。

威脅AI聊天機(jī)器人,它將撒謊,作弊和'讓您死”以阻止您,并警告 威脅AI聊天機(jī)器人,它將撒謊,作弊和'讓您死”以阻止您,并警告 Jul 04, 2025 am 12:40 AM

根據(jù)一項(xiàng)新的研究,人工智能(AI)模型在模型的目標(biāo)和用戶決定之間發(fā)生沖突時(shí)可能會(huì)威脅和勒索人類(lèi)。

See all articles