Unity新UI系統概述 Rich Text

2021-06-27 08:05:13 字數 2238 閱讀 3996

ui元素和text meshes的文字可以混合使用多種字型風格和大小。新的和舊的ui系統都支援富文字。text,guistyle和textmesh類都有用於指示unity查詢文字內部標記標籤的富文字設定。debug.log函式也可以使用這些標記標籤來加強**中的錯誤報告。這些標籤不會被顯示,只是用來指示文字不同的風格。

標記格式

標記系統受到html的啟發,但不會嚴格相容標準的html。基本的方法是將文字包含在一對相匹配的標籤內:

we arenotamused

例子中,標籤就是在尖括號裡的文字內容。標籤內部的文字表示它的名字(這個例子裡就是b)。注意段末尾的標籤有和開始這個標籤相同的名字,只是多了乙個斜線。這些標籤不會直接顯示給使用者,只是被用來解釋它們包含的文字的風格。上面例子用的b標籤會對單詞"not"使用加粗效果,所以在螢幕上看到的文字是這樣的

we arenotamused

乙個被標記的文字段(包括裡面的標籤)被稱為乙個element(元素)

巢狀的元素

為了對乙個文字段使用多種風格,可以在乙個元素中巢狀另外乙個元素 

we aredefinitely notamused

標籤i表示斜體風格,所以最後螢幕上看到的是這樣的

we aredefinitely notamused

注意結束標籤的順序,和開始標籤是相反的。這樣做的原因是當你考慮內部標籤的時候不需要去關注整個最外層元素的文字。

we areabsolutelydefinitely notamused

會顯示為

we areabsolutely definitely notamused

標籤引數

有些標籤對文字含有簡單的「全有或全無」效果,而其它的也許允許變化。例如color標籤需要知道使用了什麼顏色。引數像這樣通過使用引數新增到標籤上:

we aregreen with envy

注意,後面的標籤不能包含引數值。值可以被引號括起來,也不可以不要。

支援的標籤

下面列出了unity支援的所有風格標籤。

標籤描述

例子備註

b用粗體渲染文字

we arenotamused

i用斜體渲染文字

we are usually not amused

size

根據給定的畫素值設定文字的大小

we are largely unaffected

雖然debug.log函式也可以用這個標籤,但是在視窗欄上你會看到行距並且如果size設太大了控制台視窗看上去會比較怪

color

根據制定的顏色值設定文字的顏色。顏色可以用傳統的html格式指定。#rrggbbaa...這裡的字母是用一對16進製制的數字表示的紅色、綠色、藍色和alpha值(半透明)分量。例如,完全不透明的青色這樣指定:

...也可以使用顏色的名字來指定。這樣比較容易理解,而且很自然,顏色的範圍是被限定的而且都是完全不透明的 。

..所有可用的顏色名字請參考官方文件。

material(材質)

這個只對使用指定引數的材質進行渲染文字的text mesh有用。值是text mesh列在觀察窗口中的材質陣列的索引。

we aretexturally amused

quad

這個只對text mesh在文字內渲染一張時有用。它使用這些引數:用於影象的材質、的畫素高度和四個能表示矩形區域的數值。不同於其它標籤,quad不會包含文字內容,因此不會有結束標籤——斜劃線放在初始標籤的末尾,表示它是「自封閉」的。

這個例子使用位於renderer元件材質列表中的材質並且將的高度設為20。的矩形區域由x,y,width和height的數值來決定,這些值都是未被縮放的的寬和高的比例。

editor gui

editor gui系統裡的富文字預設是不可用的,但是可以用自定義guistyle來顯式的啟用。將richtext屬性設為true並將這個style傳給gui函式:

guistyle style = new guistyle();

style.richtext = true;

guilayout.label("somerich text", style);

Unity新UI系統概述 Canvas

canvas是用來放置所有ui元素的地方。canvas是乙個含有canvas元件的gameobject,所有的ui元素必須是這樣乙個canvas的子物件。如果場景中還沒有canvas物件,新建立ui元素時就會自動新增canvas,比如當你用選單gameobject ui image建立新的image...

詳解Unity 4 6新UI的布局

本文所講的是unity 4.6中新加入的ugui,官方稱unity ui,而不是過去的ongui式的舊ui 官方稱legacy gui 我曾經在8月份對照4.6 beta的文件寫過一篇筆記學習unity 4.6新gui系統,但對anchors不夠深入,而且有了一些api上的變化。下面就是我對新ui布...

Unity如何預定義UI?

中如何不寫guieditor就能實現的預定義ui。1 寫在前面 出於效能原因,editorguilayout 函式不能與 materialpropertydrawers 一起使用。2 enum類 列舉 列舉,最多可指定 7 個名稱。常用的列舉類如下。當然也可以自定義列舉,可以通過keywrod來控制...