[英]UI Canvas Image with UI Buttons
除非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.