Sdílet prostřednictvím


Prefab text – MRTK2

Tyto prefaby jsou optimalizované pro kvalitu vykreslování v Windows Mixed Reality. Další informace najdete v pokynech Text v Unity na webu Microsoft Windows Dev Center.

Prefabs

3DTextPrefab

3D Text Mesh prefab (Assets/MRTK/SDK/StandardAssets/Prefabs/Text) s optimalizovaným měřítkem na vzdálenost 2 metry. (Přečtěte si prosím následující pokyny.)

UiTextPrefab

Předem připravená textová síť uživatelského rozhraní (Assets/MRTK/SDK/StandardAssets/Prefabs/Text) s optimalizovaným faktorem škálování na vzdálenost 2 metry. (Přečtěte si prosím následující pokyny.)

Písma

Opensourcová písma (Assets/MRTK/Core/StandardAssets/Fonts) zahrnutá v Mixed Reality Toolkit.

Důležité

Výchozí text používá open source písmo Selawik. Pokud chcete použít výchozí text s jiným písmem, importujte soubor písma a postupujte podle následujících pokynů. Následující příklad ukazuje, jak používat písmo Segoe UI s předfabem textu.

Import souboru písma Segoe UI

  1. Přiřaďte texturu písma k materiálu 3DTextSegoeUI.mat.

    Přiřazení textury písma

  2. Na materiálu 3DTextSegoeUI.mat vyberte shader Custom/3DTextShader.shader.

    Přiřazení shaderu

  3. Přiřaďte písmo Segoe UI a materiál 3DTextSegoeUI k textovým komponentám v předfabs.

    Přiřazení souboru písma a materiálu

Práce s písmy v Unity

Při přidávání nového objektu 3D TextMesh do scény v Unity se vizuálně projevují dva problémy. 1, písmo se zdá být velmi velké a dvě, písmo se zobrazuje velmi rozmazaně. Je také zajímavé si všimnout, že výchozí hodnota Velikost písma je v inspektoru nastavená na nulu. Pokud tuto nulovou hodnotu nahradíte hodnotou 13, nezobrazí se žádný rozdíl ve velikosti, protože 13 je ve skutečnosti výchozí hodnota.

Unity předpokládá, že všechny nové prvky přidané do scény mají velikost 1 jednotky Unity nebo 100% měřítko transformace, což se na HoloLensu převede na přibližně 1 metr. V případě písem je ohraničující rámeček pro 3D TextMesh ve výchozím nastavení asi 1 metr na výšku.

Měřítko písma a velikosti písem

Většina vizuálních návrhářů používá funkci Points k definování velikostí písem v reálném světě a také k návrhu svých programů. V 1 metru je asi 2835 (2 834,645666399962) bodů. Na základě převodu bodového systému na 1 metr a výchozí velikosti písma TextMesh v Unity 13 poskytuje jednoduchá matematika 13 dělená 2835 0,0046 (přesně 0,0045861116) dobré standardní měřítko pro začátek, i když někteří můžou chtít zaokrouhlit na 0,005.

Ať tak či onak, změna velikosti textového objektu nebo kontejneru na tyto hodnoty umožní nejen převod velikostí písem 1:1 z návrhového programu, ale také poskytuje standard pro zachování konzistence v celé aplikaci nebo hře.

Text uživatelského rozhraní

Při přidávání uživatelského rozhraní nebo textového prvku založeného na plátně do scény je rozdíl ve velikostech stále větší. Rozdíly v těchto dvou velikostech jsou přibližně 1 000 %, což by faktor měřítka pro textové komponenty založené na uživatelském rozhraní přinesl hodnotu 0,00046 (přesná je 0,00045811116) nebo 0,0005 pro zaokrouhlenou hodnotu.

Právní omezení: Výchozí hodnota libovolného písma může být ovlivněna velikostí textury daného písma nebo tím, jak bylo písmo importováno do Unity. Tyto testy byly provedeny na základě výchozího písma Arial v Unity a jednoho dalšího importovaného písma.

Velikost písma s faktory měřítka

Text3DSelawik.mat

Materiál pro 3DTextPrefab s podporou okluze. Vyžaduje 3DTextShader.shader.

Výchozí materiál písma vs. materiál 3DTextSegoeUI

Text3DShader.shader

Shader pro 3DTextPrefab s podporou okluze.