Unity : TextMeshPro génère des polices chinoises (avec 3,5k, 7k, 2w jeux de caractères communs)

Packs de polices chinoises gratuites couramment utilisées de 3 500, 7 000 et 20 000 mots

1.Sélectionnez Fenêtre/TextMeshPro/Font Asset Creator

Remarque : Préparez les polices : obtenez des fichiers de polices chinoises à partir de la bibliothèque de polices ou d'autres sources, généralement au format .ttf, .otf ou .ttc. Le moyen le plus simple consiste à faire glisser un fichier .ttc depuis le dossier Police des fichiers système Windows (lecteur C > dossier Windows > dossier Polices). Il semble que les formats ttf et otf ne soient pas supportés. Les fichiers de polices et les fichiers de bibliothèque de polices doivent être copiés dans le dossier Assets ou son sous-dossier du projet Unity.
Insérer la description de l'image ici

2.Interface de configuration de Font Asset Creator, cliquez sur Générer un atlas de polices une fois le paramétrage terminé.

Insérer la description de l'image ici

Explication de la propriété

Fichier de police source : sélectionnez la police utilisée pour générer les ressources de police Text Mesh Pro.

Sampling Point Size:设置用于生成字体纹理的字体大小(以磅为单位)。

            Auto Sizing(默认):使用尽可能大的磅值,同时仍然适合纹理上的所有字符。        

            Custom Size:使用自定义磅值,在文本框中输入所需的大小,使用此设置可实现对仅位图字体的像素精确控制。

Remplissage : spécifie l'espacement (en pixels) entre les caractères dans la texture de la police. Plus le remplissage est grand, plus la transition est douce, permettant un rendu de meilleure qualité et des effets plus importants tels que des contours épais. Pour les textures 512x512, un remplissage de 5 est généralement bon.

Packing Method:指定如何使字符适合字体纹理。

            Optimum:查找仍然适合纹理中所有字符的最大可能自动字体大小。(最后打包的时候用)

            Fast(默认):更快地计算字符打包,但可能使用比优化模式更小的字体大小。(测试时使用)

Atlas Resolution:设置字体纹理的大小宽度和高度,以像素为单位,512 x 512 的分辨率对于大多数字体来说都很好,只要您只包含 ASCII 字符即可。使用 SDF字体时,更高的分辨率会产生更精细的渐变,从而产生更高质量的文本。

Jeu de caractères : sélectionnez un jeu de caractères prédéfini : la plage de caractères de la police que vous créez, c'est-à-dire tous les caractères inclus dans la police TextMeshPro que vous souhaitez créer. Dans notre cas, ce sont tous des caractères chinois. D'une manière générale, des caractères chinois courants + des mots anglais + des symboles peuvent être utilisés.
Déroulez vers le bas pour sélectionner les caractères du fichier, puis sélectionnez le fichier txt contenant tous les caractères requis (doit d'abord être importé dans Unity). Voir l'adresse de téléchargement en début d'article

            ASCII(默认):包括 ASCII 字符集中的可见字符。

            Extended ASCII:包括扩展 ASCII 字符集中的可见字符。

            ASCII Lowercase:仅包含 ASCII 字符集中可见的小写字符。

            ASCII Uppercase:仅包含 ASCII 字符集中可见的大写字符

            Numbers+Sysbols:仅包括来自 ASCII 字符集的可见数字和符号。

            Custom Range:输入一系列十进制值或值范围,以指定要包括的字符。

            Unicode Range(Hex):输入一系列 unicode 十六进制值或值范围,以指定要包含的字符。

            Custom Characters:输入字符序列以指定要包含的字符。

            Characters from File:包括小伙伴们指定的文本资源中的所有字符。

Mode de rendu : spécifie le mode de rendu à utiliser lors de la sortie de l'atlas des polices.

            SMOOTH:将图集渲染为抗锯齿位图。

            RASTER:将图集渲染为非抗锯齿位图。

            SMOOTH_HINTED:将图集渲染为抗锯齿位图,并将字符像素与纹理像素对齐以获得更清晰的结果。

            RASTER_HINTED:将图集渲染为非抗锯齿位图,并将字符像素与纹理像素对齐以获得更清晰的结果。

            SDF:使用较慢但更准确的 SDF 生成模式渲染图集,并且没有过采样。

            SDFAA:使用更快但不太准确的 SDF 生成模式渲染图集,它生成的字体图集足以满足大多数情况。

            SDFAA_HINTED:使用更快但不太准确的 SDF 生成模式渲染图集,并将字符像素与纹理像素对齐以获得更清晰的结果,它生成的字体图集足以满足大多数情况。

            SDF8:使用较慢但更准确的 SDF 生成模式和 8 倍过采样渲染图集。

            SDF16:使用更慢但更准确的 SDF 生成模式和 16 倍过采样渲染图集。

            SDF32:使用较慢但更准确的 SDF 生成模式和 32 倍过采样渲染图集。将此设置用于具有复杂或小字符的字体。

Obtenir des paires de crénage : activez cette option pour copier les données de crénage de la police.

Générer un atlas de polices : générer une texture d'atlas de polices.

3. Après génération, comme indiqué ci-dessous

Cliquez sur Enregistrer pour enregistrer.
Remarque : s'il y a trop de caractères manquants, vous pouvez essayer de modifier la police.
Insérer la description de l'image ici

Résolution de bugs

Chaque caractère a un ombrage blanc translucide car TextMeshPro utilise des champs de distance dirigés pour le rendu.
Solution : définissez la propriété Shader du matériau Texte (TMP) sur Bitmap.

Avertissement 1 : Impossible d'ajouter le caractère demandé à la texture atlas de l'actif de police [msyhbd SDF] Veuillez rendre la texture [msyhbd SDF Atlas] lisible.
Solution 1 : Sélectionnez la texture atlas contenue dans la police dans le panneau de projet, puis modifiez. l'inspecteur en mode débogage et cochez Est lisible.
Solution 2 : Utilisez le Bloc-notes pour ouvrir le fichier .asset dans le répertoire des fichiers de polices, recherchez m_Isreadable:0, modifiez-le en 1 et enregistrez-le. Le principe est le même que la solution 1.
Attention 2 : Le caractère utilisé pour le soulignement n'est pas disponible. dans l'actif de police [msyhbd SDF].
Solution 1 : recherchez le fichier TextMeshPro dans le panneau de projet, sélectionnez Ressources > Paramètres TMP et cochez Désactiver les avertissements dans le panneau d'inspection pour désactiver l'avertissement.
Solution 2 : l'avertissement est traduit par : "Le caractère utilisé pour le soulignement n'est pas disponible dans l'actif de police [msyhbd SDF]", c'est-à-dire que le style de soulignement ne peut pas être utilisé. Pour cet avertissement, ajoutez simplement le caractère souligné au caractère. régler et répéter les étapes ci-dessus.

Avertissement 3 : "Le caractère avec la valeur Unicode \u3002 n'a pas été trouvé dans la police [msyhbd SDF] ni dans aucune solution de secours potentielle. Il a été remplacé par le caractère Unicode \u25A1 dans l'objet texte [Texte (TMP)].
" à : "Le caractère avec la valeur Unicode \u3002 n'a pas été trouvé dans la ressource de police [msyhbd SDF] ni dans aucune solution de secours potentielle. Il a été remplacé par le caractère Unicode \u25A1 dans l'objet texte [Texte (TMP)]." Si des caractères qui ne sont pas dans le texte de la police sont saisis, la solution peut être la même que l'avertissement 2, solution 1, désactivez l'avertissement, de sorte que même si nous saisissons des caractères qui ne sont pas dans le texte de la police, seul le caractère Unicode \ u25A1 apparaîtra dans l'interface Scene et n'apparaîtra pas d'avertissement pour faciliter le débogage du projet.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_52051554/article/details/140495011
conseillé
Classement