簡體   English   中英

帶有UI按鈕的UI畫布圖像

[英]UI Canvas Image with UI Buttons

我有2個UI按鈕的UI畫布圖像。 我將該層設置為背景。 但是這一層覆蓋了我的游戲! 我如何處理一切?

在此處輸入圖片說明 在此處輸入圖片說明

我想將第二個imagem設置為背景。

我正在使用UI畫布,因為它可以通過錨點自動調整為任何屏幕。

-

除非GameObject是UI的一部分,否則場景中的任何GameObject都不應位於Canvas下。 您要使用的背景圖片不是用戶界面。 您的帖子顯示您只希望將其用作UI,因為Canvas會自動調整尺寸以匹配屏幕尺寸。

如何使用代碼解決此問題,而又不將背景紋理作為UI的一部分。

1. 刪除/刪除當前背景及其畫布對象。 不用了

2. 重新導入背景圖像,並確保其紋理類型設置為Sprite(2D和UI)

3.將其拖到場景中,並將其重命名為Background 現在將其放在Bee GameObject下 蜜蜂現在應該是背景紋理的父級 ,並且背景紋理應該在地面對象的頂部。

4.Create一個名為腳本BackGroundResizer ,把下面的代碼在里面。 將腳本附加到背景 GameObject /紋理。

// Use this for initialization
void Start()
{
 resizeSprite();
}

void resizeSprite()
{
 SpriteRenderer bgSprite = GetComponent<SpriteRenderer>();
 float screenHeight = Camera.main.orthographicSize * 2;
 float screenWidth = screenHeight / Screen.height * Screen.width;
 transform.localScale = new Vector3(screenWidth / bgSprite.sprite.bounds.size.x,   screenHeight / bgSprite.sprite.bounds.size.y, 1);
}

這應該可以解決您當前的職位問題。 下面介紹了如何正確設置UI。

使用不同的畫布來分隔您的UI並根據它們的顯示時間對其進行分組。 然后,您可以打開 / 關閉整個“畫布 在此文章之前的文章表明,您正在使用圖像作為按鈕,並且在要用作按鈕的兩個圖像上附加了一個不同的腳本。 按鈕用於按鈕 ,將圖像用於不可單擊的對象。 就那么簡單。 因此,將這些圖像更改為按鈕。

您不需要GameOver場景。 一個GameOverCanvas很好。 粗體顯示的GameObjects是父級 Objects(Canvas)。 以' - '開頭的是 GameObjects。

第1步:

創建Canvas並將其命名為MainMenuCanvas (游戲加載時顯示的第一個UI)。創建每個子按鈕並將其重命名如下( GameObject-> UI-> Button ):

-playButton;
-settingsButton;
-exitGameButton;

MainMenuCanvas腳本附加到MainMenuCanvas對象。

第2步:

創建一個Canvas並將其命名為GameCanvas (在游戲期間顯示)。創建每個子按鈕並將其重命名為以下名稱( GameObject-> UI-> Button ):

-pauseButton
-jumpButton

GameCanvas腳本附加到GameCanvas對象。

第三步:

創建一個Canvas並將其命名為PauseCanvas (單擊暫停按鈕時顯示)。創建每個子按鈕並將其重命名如下( GameObject-> UI-> Button ):

-resumeButton;
-backToMainMenuButton;
-settingsButton;
-exitGameButton;

PauseCanvas腳本附加到PauseCanvas對象。

第四步:

創建一個Canvas並將其命名為SettingsCanvas (單擊設置按鈕時顯示)。創建每個子按鈕並將其重命名如下( GameObject-> UI-> Button ):

-backButton;

SettingsCanvas腳本附加到SettingsCanvas對象。

步驟5:

創建一個Canvas並將其命名為GameOverCanvas (在游戲結束或玩家被殺死時顯示)。創建每個子按鈕並將其重命名如下( GameObject-> UI-> Button ):

-playAgainButton;
-backToMainMenuButton;
-exitGameButton;

GameOverCanvas腳本附加到GameOverCanvas對象。

步驟6:

游戲場景中,確保僅啟用GameCanvas 畫布的其余部分應手動禁用

步驟7:

在“ 菜單”場景中,確保僅啟用MainMenuCanvas 畫布的其余部分應手動禁用

正確設置后,我提供的UI代碼模板應該可以使用。 用戶界面不再重疊 ,您可以輕松添加或刪除功能。

您的設置應如下圖所示。

在此處輸入圖片說明

我建議您考慮使用單獨的UI相機。 這將允許您僅將UI繪制到第二個攝像機,而不是主攝像機。 然后,您可以相對於其他所有物體繪制任意深度。 為此,您將必須創建另一個攝像機並將其設置為“ Culling Mask和“ Clear Flags以僅繪制UI而不是天空盒。

如果您使用Google'UI camera Unity'進行搜索,那么應該有很多有關完全按照自己的意願進行操作的信息。 這是相對常見的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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