国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 之 實現(xiàn)背景圖動態(tài)適配不同分辨率

這篇具有很好參考價值的文章主要介紹了Unity 之 實現(xiàn)背景圖動態(tài)適配不同分辨率。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一,問題背景

如何動態(tài)為一張背景圖實現(xiàn)不同分辨率的適配?

在不同分辨率的設備上,背景圖可能會出現(xiàn)拉伸、壓縮或失真等問題,因此需要對背景圖進行適當?shù)目s放和調整,以確保在不同分辨率下都能夠保持良好的外觀效果。


二,解決思路

要使用該代碼示例,您需要按照以下步驟操作:

  1. 在 Unity 編輯器中,創(chuàng)建一個新的空對象,并將其命名為 BackgroundScaler。

  2. 將 BackgroundScaler.cs 腳本文件添加到 BackgroundScaler 對象中。

  3. 在 工程文件夾中創(chuàng)建一個名為 Backgrounds 的子文件夾,并將背景圖添加到該文件夾中。

  4. 在 BackgroundScaler.cs 腳本文件中,將 backgroundSprite 變量設置為您添加的背景圖的 Sprite。

  5. 將 BackgroundScaler 對象添加到場景中。

  6. 運行場景,并在不同分辨率的設備上測試背景圖的適配效果。


三,注意事項

在使用該代碼示例時,請注意以下幾點:

  1. 背景圖應該具有適當?shù)目v橫比,以確保在不同分辨率下都能夠保持良好的外觀效果。

  2. 在測試適配效果時,請使用不同分辨率的設備進行測試,并觀察背景圖是否出現(xiàn)拉伸、壓縮或失真等問題。

  3. 如果您的背景圖太大或太小,可能會影響適配效果。請嘗試使用適當?shù)膱D像編輯工具對背景圖進行縮放或裁剪,以確保其大小適中。


四,代碼分享

通過使用該代碼示例,您可以動態(tài)為一張背景圖實現(xiàn)不同分辨率的適配,并確保在不同分辨率下都能夠保持良好的外觀效果。在實際開發(fā)中,您可以根據(jù)具體情況對代碼進行修改和優(yōu)化,以滿足需求。

具體代碼如下:

using UnityEngine;
using UnityEngine.UI;

public class BackgroundScaler : MonoBehaviour
{
    public Sprite backgroundSprite; // 存儲背景圖

    private Image backgroundImage;

    void Awake()
    {
        backgroundImage = GetComponent<Image>();

        // 獲取當前設備的分辨率
        float screenHeight = Screen.height;
        float screenWidth = Screen.width;

        // 計算目標背景圖的寬高比
        float targetAspect = screenWidth / screenHeight;

        // 獲取背景圖的寬高比
        float imageAspect = backgroundSprite.rect.width / backgroundSprite.rect.height;

        // 如果目標寬高比小于背景圖寬高比,則以寬度為基準進行縮放
        if (targetAspect < imageAspect)
        {
            float scaleFactor = backgroundSprite.rect.width / screenWidth;
            float scaledHeight = backgroundSprite.rect.height / scaleFactor;

            // 設置背景圖的大小和位置
            backgroundImage.rectTransform.sizeDelta = new Vector2(screenWidth, scaledHeight);
            backgroundImage.rectTransform.position = Vector3.zero;
        }
        // 如果目標寬高比大于或等于背景圖寬高比,則以高度為基準進行縮放
        else
        {
            float scaleFactor = backgroundSprite.rect.height / screenHeight;
            float scaledWidth = backgroundSprite.rect.width / scaleFactor;

            // 設置背景圖的大小和位置
            backgroundImage.rectTransform.sizeDelta = new Vector2(scaledWidth, screenHeight);
            backgroundImage.rectTransform.position = Vector3.zero;//new Vector2(screenWidth / 2, screenHeight / 2);
        }

        // 設置背景圖的 sprite
        backgroundImage.sprite = backgroundSprite;
    }
}

五,實戰(zhàn)應用

根據(jù)畫布大小和屏幕比例來決定背景縮放比例:文章來源地址http://www.zghlxwxcb.cn/news/detail-438205.html

using UnityEngine;
using UnityEngine.UI;

public class BackgroundScaler : MonoBehaviour
{
    public Canvas BackgroundCanvas;

    private Image backgroundImage;

    private void Start()
    {
        if (BackgroundCanvas != null)
        {
            backgroundImage = GetComponent<Image>();
            UpdateBackgroundSize();
        }
    }

    private void UpdateBackgroundSize()
    {
        RectTransform rt = backgroundImage.rectTransform;
        float screenWidth = BackgroundCanvas.GetComponent<RectTransform>().rect.width; //Screen.width;
        float screenHeight = BackgroundCanvas.GetComponent<RectTransform>().rect.height; //Screen.height;
        float screenRatio = screenWidth / screenHeight;
        float bgRatio = rt.rect.width / rt.rect.height;

        if (screenRatio > bgRatio)
        {
            rt.sizeDelta = new Vector2(screenWidth, screenWidth / bgRatio);
        }
        else
        {
            rt.sizeDelta = new Vector2(screenHeight * bgRatio, screenHeight);
        }

        rt.anchoredPosition = new Vector2(0, 0);
    }
}

到了這里,關于Unity 之 實現(xiàn)背景圖動態(tài)適配不同分辨率的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 屏幕分辨率:PC / 手機 屏幕常見分辨率,前端如何適配分辨率

    屏幕分辨率:PC / 手機 屏幕常見分辨率,前端如何適配分辨率

    一、常見的PC屏幕分辨率 序號 水平像素點數(shù)和垂直像素點數(shù) 也被稱為 常見顯示器 1 1366 × 768 720p 或 HD Ready 常見于筆記本電腦和低端桌面顯示器 2 1920 × 1080 1080p 或 Full HD /?全高清 高端筆記本電腦和中高檔臺式機 3 2560 × 1440 2K 分辨率 常見于高端筆記本電腦和高端臺式機 4 38

    2024年02月03日
    瀏覽(54)
  • 【Unity3D】Android 打包 ② ( Android 編譯選項 | Android 工程設置 | 配置基本信息 | 配置不同分辨率圖標 | 配置啟動動畫 | 其它設置 )

    【Unity3D】Android 打包 ② ( Android 編譯選項 | Android 工程設置 | 配置基本信息 | 配置不同分辨率圖標 | 配置啟動動畫 | 其它設置 )

    在上一篇博客 【Unity3D】Android 打包 ① ( Android 編譯選項 | 安裝 Android Build Support 模塊 ) 中 講解了 Android 打包的最基本配置 , 安裝 Android Build Support 模塊 ; 本篇博客繼續(xù)講解后續(xù)工作 ; 在 Unity 編輯器中選擇 \\\" 菜單欄 | File | Build Settings \\\" 選項 , 點擊 Build Settings 對話框的左下角的

    2023年04月19日
    瀏覽(99)
  • Python 不同分辨率圖像峰值信噪比[PSNR]

    Python 不同分辨率圖像峰值信噪比[PSNR]

    PNNR:全稱為“Peak Signal-to-Noise Ratio”,中文直譯為峰值信噪比 前言 一、定義 二、Python代碼 1.自定義 2.Tensorflow 總結 峰值信噪比是一種衡量圖像質量的指標,描述的是最大值信號與背景噪音之間的關系。 一般來說,PSNR高于40dB說明圖像質量極好(即非常接近原始圖像);在

    2024年02月01日
    瀏覽(25)
  • 兩個鏡頭、視野、分辨率不同的相機(rgb、紅外)的視野校正

    兩個鏡頭、視野、分辨率不同的相機(rgb、紅外)的視野校正

    目前在做的項目用到兩個攝像頭,一個是熱成像攝像頭、另一個是普通的rgb攝像頭。 一開始的目標是讓他們像素級重合,使得點擊rgb圖像時,即可知道其像素對應的溫度。但是在嘗試的過程中,發(fā)現(xiàn)基本不可能。因為由于縱深、遮擋、透視變形、視差等問題,兩個攝像頭拍攝

    2024年02月14日
    瀏覽(19)
  • python求不同分辨率圖像的峰值信噪比,一文搞懂

    python求不同分辨率圖像的峰值信噪比,一文搞懂

    可以使用 Python 的 NumPy 和 OpenCV 庫來實現(xiàn)這個任務。提前準備一張圖片作為素材。 峰值信噪比(Peak Signal to Noise Ratio,PSNR)是衡量圖像質量的常用指標,它表示圖像中信號和噪聲的比值。通常,較高的 PSNR 值表示圖像質量較高。 PSNR 的公式如下: 其中, MAX 是圖像的最大亮度

    2024年02月05日
    瀏覽(31)
  • 電腦多個不同分辨率屏幕鼠標移動時出現(xiàn)偏移、錯位情況的解決方法

    電腦多個不同分辨率屏幕鼠標移動時出現(xiàn)偏移、錯位情況的解決方法

    ??本文介紹在使用 不同尺寸 、 不同分辨率 的兩個或多個電腦屏幕時,鼠標在不同屏幕之間切換時,出現(xiàn)偏移、飄動、不規(guī)則運動等情況的解決方法。 ??對于使用兩個或多個電腦屏幕的用戶而言,鼠標在不同屏幕之間的切換有時候會出現(xiàn)偏移的問題。在同時使用多個相

    2024年02月16日
    瀏覽(20)
  • unity怎么設置分辨率

    要設置Unity中的游戲分辨率(最終發(fā)布),有以下兩種方法: 其中,Screen.SetResolution()函數(shù)用于設置游戲分辨率,參數(shù)含義分別為寬度、高度和是否全屏。需要注意的是,在不同的設備上使用固定的分辨率可能會導致顯示效果失真或變形,因此最好根據(jù)具體設備和游戲的需求進

    2024年02月12日
    瀏覽(23)
  • unity設置分辨率的兩種方法

    unity設置分辨率的兩種方法 使用Unity編輯器中的分辨率設置工具。打開Unity編輯器,選擇菜單欄中的“Edit” - “Project Settings” - “Player”,在“Resolution and Presentation”選項卡中選擇想要的分辨率,然后點擊“Apply”按鈕即可。 使用腳本設置分辨率。在Unity中創(chuàng)建一個腳本,使

    2024年02月11日
    瀏覽(27)
  • centos7新增分辨率 1920 1080 ,網上各種方法大羅列?。ㄓH測針對不同設備,有的有用!有的......)

    centos7新增分辨率 1920 1080 ,網上各種方法大羅列!(親測針對不同設備,有的有用!有的......)

    步驟總結如下: cvt 1920 1080 xrandr --newmode \\\" 1920x1080_60.00\\\"173.0019202048 2248 2576 1080 1083 1088 1120 - hsync +vsync xrandr --addmode VGA-1 “1920x1080_60.00” (VGA-1 要看自己的配置,別瞎改) xrandr -s 1920x1080_60.00 要想永久生效,請看文末幾種方法 (總結網上多種方法) 具體過程截圖如下!! cvt 1920

    2024年02月10日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包