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

Unity UGUI使用Text組件位圖字體進(jìn)行自適應(yīng)大小

這篇具有很好參考價(jià)值的文章主要介紹了Unity UGUI使用Text組件位圖字體進(jìn)行自適應(yīng)大小。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.首先我們需要把位圖字體導(dǎo)入到unity中,然后利用插件轉(zhuǎn)化一下 我使用的是BMFont

2.然后我們就可以看到生成了四個(gè)文件,其中我們主要注意的是.fontsettings文件,

unity 文本自適應(yīng),unity,游戲引擎

我們主要修改的就是?Character Rect里面的各個(gè)參數(shù),至于具體是什么 ,大家有興趣的可以去搜索,

好了 我們直接上代碼

把腳本掛載到text組件上面

其中singleFontWidth和singleFontHeight是你當(dāng)前位圖字體的參數(shù)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class BitmapFontResizer : MonoBehaviour
{

? ? public float singleFontWidth = 65;//單個(gè)位圖字體的寬度
? ? public float singleFontHeight = 90;//單個(gè)位圖字體的高度
? ? private Text textComponent;//text組件
? ? private float maxLenth = 580;//text框的長(zhǎng)度
? ? public Font myFont;
? ? void Start()
? ? {
? ? ? ? myFont = Instantiate(myFont);//實(shí)例化一個(gè)字體,不然會(huì)修改源文件參數(shù)
? ? ? ? textComponent = GetComponent<Text>();
? ? ? ? textComponent.font = myFont;
? ? ? ? CharacterInfo[] _characterInfo = textComponent.font.characterInfo;
? ? ? ? if (textComponent.text.Length * singleFontWidth >= maxLenth)
? ? ? ? {
? ? ? ? ? ? float coefficient = maxLenth / (textComponent.text.Length * singleFontWidth);//計(jì)算比例系數(shù)
? ? ? ? ? ? for (int i = 0; i < _characterInfo.Length; i++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? _characterInfo[i].glyphWidth = (int)(_characterInfo[i].glyphWidth * coefficient);//修改寬度
? ? ? ? ? ? ? ? //_characterInfo[i].glyphHeight = (int)(_characterInfo[i].glyphHeight * coefficient);//修改高度,(這個(gè)會(huì)同時(shí)修改Vert里面的Y,與預(yù)先的不適合,謹(jǐn)慎使用)
? ? ? ? ? ? ? ? _characterInfo[i].advance = (int)(_characterInfo[i].advance * coefficient);//寬度發(fā)生變化后需要修改字體之間的間隔
? ? ? ? ? ? ? ? _characterInfo[i].vert.height = (int)(_characterInfo[i].vert.height * coefficient);//棄用的,但是還可以使用我用的是unity2021,單純修改高度
? ? ? ? ? ? ? ? _characterInfo[i].vert.y = (int)(_characterInfo[i].vert.y * coefficient);//棄用的,但是還可以使用我用的是unity2021,修改Y值
? ? ? ? ? ? }

? ? ? ? }
? ? ? ? textComponent.font.characterInfo = _characterInfo;//對(duì)characterInfo進(jìn)行賦值
? ? }
}文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-751767.html

到了這里,關(guān)于Unity UGUI使用Text組件位圖字體進(jìn)行自適應(yīng)大小的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity UGUI的Button組件的介紹及使用

    UGUI(Unity GUI)是Unity引擎中的一套用戶界面系統(tǒng),Button(按鈕)是其中的一個(gè)常用組件。Button組件可以用于創(chuàng)建可交互的按鈕,用戶點(diǎn)擊按鈕時(shí)可以觸發(fā)相應(yīng)的事件。 Button組件通過(guò)檢測(cè)用戶的點(diǎn)擊事件來(lái)觸發(fā)相應(yīng)的操作。當(dāng)用戶點(diǎn)擊按鈕時(shí),Button組件會(huì)檢測(cè)到點(diǎn)擊事件,并執(zhí)

    2024年02月12日
    瀏覽(839)
  • Unity UGUI的Mask(遮罩)組件的介紹及使用

    Mask(遮罩)組件是Unity UGUI中的一個(gè)重要組件,用于限制子對(duì)象的可見(jiàn)區(qū)域。通過(guò)設(shè)置遮罩組件,可以實(shí)現(xiàn)一些特殊效果,如顯示部分圖片、裁剪文本等。 Mask組件通過(guò)將子對(duì)象與遮罩對(duì)象進(jìn)行比較,只顯示與遮罩對(duì)象重疊的部分,從而實(shí)現(xiàn)遮罩效果。遮罩對(duì)象可以是任意形狀

    2024年02月13日
    瀏覽(96)
  • Unity UGUI的Canvas(畫(huà)布)組件的介紹及使用

    Canvas(畫(huà)布)是Unity UGUI系統(tǒng)中的一個(gè)重要組件,用于在屏幕上繪制UI元素。它是UI元素的容器,可以包含各種UI元素,如按鈕、文本、圖像等。Canvas組件提供了一種方便的方式來(lái)管理和渲染UI元素。 Canvas組件通過(guò)渲染器將UI元素繪制到屏幕上。它使用層級(jí)結(jié)構(gòu)來(lái)管理UI元素的顯

    2024年02月08日
    瀏覽(94)
  • Unity UGUI的Image(圖片)組件的介紹及使用

    UGUI的Image(圖片)組件是Unity引擎中的一種UI組件,用于顯示2D圖像。它提供了一種簡(jiǎn)單而靈活的方式來(lái)在游戲中加載和顯示圖片。 使用UGUI的Image組件可以方便地在游戲中展示各種圖片資源,比如角色頭像、道具圖標(biāo)等。它具有以下優(yōu)點(diǎn): 易用性 :UGUI的Image組件提供了簡(jiǎn)單易

    2024年02月11日
    瀏覽(93)
  • Unity UGUI的Outline(描邊)組件的介紹及使用

    Outline(描邊)組件是Unity UGUI中的一種特效組件,用于給UI元素添加描邊效果。通過(guò)設(shè)置描邊的顏色、寬度和模糊程度,可以使UI元素在視覺(jué)上更加突出。 Outline(描邊)組件通過(guò)在UI元素周?chē)L制多個(gè)相同的UI元素,并設(shè)置不同的顏色和大小,從而實(shí)現(xiàn)描邊的效果。描邊的寬度和模糊

    2024年02月15日
    瀏覽(96)
  • unity UGUI源碼分析(4)Text與TextMeshPro

    unity UGUI源碼分析(4)Text與TextMeshPro

    這一篇博客用于分析Text的內(nèi)容的更新機(jī)制,并分析text mesh pro。 首先我們分析Text的文字是如何渲染出來(lái)的。 ? PupulateWithErrors方法會(huì)根據(jù)字符串生成頂點(diǎn)數(shù)據(jù)。其實(shí)Text會(huì)根據(jù)所給定的字符串生成相關(guān)的圖集,然后對(duì)圖集進(jìn)行采樣就可以渲染出文字了。由于TextGenerator沒(méi)有開(kāi)源,

    2023年04月22日
    瀏覽(21)
  • Unity UGUI的ToggleGroup(選項(xiàng)組)組件的介紹及使用

    ToggleGroup(選項(xiàng)組)是Unity UGUI中的一個(gè)組件,用于管理一組Toggle(選項(xiàng))的選擇狀態(tài)。ToggleGroup組件可以確保在同一個(gè)ToggleGroup中只有一個(gè)Toggle被選中,其他Toggle將自動(dòng)取消選中狀態(tài)。 ToggleGroup組件通過(guò)監(jiān)聽(tīng)Toggle的選擇狀態(tài)來(lái)實(shí)現(xiàn)管理功能。當(dāng)一個(gè)Toggle被選中時(shí),ToggleGroup會(huì)遍

    2024年02月16日
    瀏覽(26)
  • Unity UGUI的GraphicRaycaster(射線投射)組件的介紹及使用

    GraphicRaycaster是Unity UGUI系統(tǒng)中的一個(gè)組件,用于處理射線投射事件。它可以將射線投射到UI元素上,并檢測(cè)是否有UI元素被點(diǎn)擊或觸摸到。 GraphicRaycaster通過(guò)射線投射的方式來(lái)檢測(cè)UI元素的點(diǎn)擊事件。當(dāng)用戶點(diǎn)擊屏幕或觸摸屏幕時(shí),GraphicRaycaster會(huì)發(fā)射一條射線,然后檢測(cè)射線是

    2024年02月15日
    瀏覽(97)
  • Unity UGUI的InputField(輸入框)組件的介紹及使用

    UGUI的InputField組件是Unity中的一個(gè)用戶界面組件,用于接收用戶的輸入。它可以用于創(chuàng)建文本輸入框、密碼輸入框等功能。 UGUI的InputField組件通過(guò)監(jiān)聽(tīng)用戶的輸入事件,用戶將輸入的內(nèi)容保存在一個(gè)字符串中,并將該字符串顯示在輸入框中。用戶可以通過(guò)鍵盤(pán)輸入、鼠標(biāo)點(diǎn)擊等

    2024年02月12日
    瀏覽(96)
  • Unity UGUI的Dropdown(下拉菜單)組件的介紹及使用

    Dropdown(下拉菜單)是Unity UGUI中的一個(gè)常用組件,用于在用戶點(diǎn)擊或選擇時(shí)顯示一個(gè)下拉菜單,提供多個(gè)選項(xiàng)供用戶選擇。 Dropdown組件由兩部分組成:一個(gè)可點(diǎn)擊的按鈕和一個(gè)下拉菜單。當(dāng)用戶點(diǎn)擊按鈕時(shí),下拉菜單會(huì)展開(kāi),顯示所有選項(xiàng)。用戶可以通過(guò)點(diǎn)擊選項(xiàng)來(lái)進(jìn)行選擇

    2024年02月13日
    瀏覽(580)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包