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