Unity插件之NGUI學習(5)—— 創建Label圖文混排及文字點擊


創建一個新的Scene,並按 Unity插件之NGUI學習(2)創建UI Root。

准備工作,制作Font。如今Project窗體創建一個Font目錄。然后從系統自帶字體目錄中選擇自己須要的字體,我選擇了黑體。然后拖到Font目錄中去。

選擇剛導入的字體。


Font Size默認是16,只是網上看到過size16在IOS上顯示太小。所以設置為30。


在菜單中選擇NGUI->Open->Font Maker

Type默認是Generated Bitmap——會生成材質文件,Dynamic——動態字體。只是黃色警告提示動態字體會產生多余的DrawCall,考慮繪制性能問題,所以選擇了Generated Bitmap。

Source選擇剛才導入的黑體字體。


Size——設置材質圖片中字體的大小。

Custom——能夠添加游戲中顯示的文字。

Atlas——選擇原有已經制作的的Atlas(圖文混排時,須要與混排的圖片制作在同一個Atlas)。

然后點擊Create the Fontbutton,在Project窗體會生成Font的Prefab


設置圖文混排的標識。選擇Project窗體中剛制作的Font Prefab。然后在Inspector窗體設置圖片標識。


在Symbols and Emoticons窗體,眼下我僅僅是的圖片標識有:"(<)" 使用undo_btn取代,"(?)"使用help_btn取代。


選擇菜單NGUI->Open->Widget Wizard(Legacy)


Atlas選擇剛才制作Font中output的Atlas

Font選擇剛才制作的Font Prefab

Template選擇Label

Add To選擇UI Root

然后在Inspector設置Label參數


Font Size —— 字體大小。

Overflow 選擇ResizeHeight。由文本整體高度來決定。

Effect —— None沒有特效,Shadow陰影,Outline描邊。

其它的屬性大家能夠自己嘗試。應該都能讀懂的。


文字內容:

[b]bold[/b],[i]italic[/i],[u]underline[/u], [s]strikethrough[/s],
[sub]sub[/sub] 
[00ff00]Green[-]
Lucy(?) 露茜軍團 (<)





[url=http://blog.csdn.net/xcookies][u]clickable [/u][/url]


[b][/b]黑體 [i][/i]斜體 [u][/u]下划線 [s][/s]中划線 [sub][/sub]副標題效果 [00ff00][-]顏色效果 (?

) (<)就是剛才設置的圖片標識 [url=http://blog.csdn.net/xcookies][/url]地址鏈接

看下顯示效果



以下加入Label的點擊效果,使用戶點擊了clickable字樣能夠打開Url鏈接。

創建一個C# Script

using UnityEngine;
using System.Collections;


public class LabelClickTest : MonoBehaviour {

void OnClick ()
{
Debug.Log("Label Click");
UILabel lbl = GetComponent<UILabel>();

if (lbl != null)
{
string url = lbl.GetUrlAtPosition(UICamera.lastHit.point);
if (!string.IsNullOrEmpty(url)) Application.OpenURL(url);
}
}
}

在Hierarchy窗體選擇Label。選擇菜單Component->Physics->Box Collider。勾選Is Trigger在Inspector窗體設置Box大小尺寸,能夠在Widget的Collider勾選auto-adjust to match。然后將剛才的LabelClickTest腳本加入到Label。

執行游戲,點擊clickable字樣,會自己主動打開瀏覽器。訪問Label內容的Url鏈接。


PS:NGUI的Label真的非常強大,尤其是圖文混排。還支持局部黑體、斜體、下划線等等功能,唯一遺憾的是圖文混排時。假設圖片過大時,排版有點難看,所以制作圖片的時候。盡量使用跟字體高度差點兒相同的圖片比較合適。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM