Unity插件之NGUI学习(5)—— 创建Label图文混排及文字点击
创建一个新的Scene,并按 Unity插件之NGUI学习(2)创建UI Root。
准备工作,制作Font。如今Project窗体创建一个Font目录。然后从系统自带字体目录中选择自己须要的字体,我选择了黑体。然后拖到Font目录中去。
选择刚导入的字体。
Font Size默认是16,只是网上看到过size16在IOS上显示太小。所以设置为30。
在菜单中选择NGUI->Open->Font Maker
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGNvb2tpZXM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
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]地址链接
看下显示效果
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGNvb2tpZXM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
以下加入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真的非常强大,尤其是图文混排。还支持局部黑体、斜体、下划线等等功能,唯一遗憾的是图文混排时。假设图片过大时,排版有点难看,所以制作图片的时候。尽量使用跟字体高度差点儿相同的图片比較合适。
Unity插件之NGUI学习(5)—— 创建Label图文混排及文字点击的更多相关文章
- Unity插件之NGUI学习(4)—— 创建UI2DSprite动画
创建一个新的Scene.并按 Unity插件之NGUI学习(2)创建UI Root,并在UI Root的Camera下创建一个Panel. 然后在选中Panel,在菜单中选择NGUI->Crea ...
- Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸
依据 Unity插件之NGUI学习(2),创建一个UI Root,在UI Root下创建一个Texture作为背景图,并设置图片,在Wiget下调整大小:然后在UI Root下再创建一个Panel. ...
- Unity插件之NGUI学习(1)—— 环境搭建
Unity官网http://unity3d.com/unity/download下载最新版本号4.5.4 在圣典论坛上找到破解补丁(Windows)版本号tid=18741&fid=8&quo ...
- Unity插件之NGUI学习(6)—— 关于Widget怎样加入触发事件(触发OnClick)
NGUI中,Button本身就带有OnClick事件,可是Sprite,Label等( 也绑有Widget的)并没有触发事件,事实上NGUI的事件触发都必须加入Box Collider,并勾选Is T ...
- 【学习中】Unity插件之NGUI 完整视频教程
课程 章节 内容 签到 Unity插件之NGUI 完整视频教程 第一章 NGUI基础控件和基础功能学习 1.NGUI介绍和插件的导入 6月29日 2.创建UIRoot 6月29日 3.学习Label控 ...
- Unity UGUI图文混排源码(二)
Unity UGUI图文混排源码(一):http://blog.csdn.net/qq992817263/article/details/51112304 Unity UGUI图文混排源码(二):ht ...
- Unity琐碎(3) UGUI 图文混排解决方案和优化
感觉使用Unity之后总能看到各种各样解决混排的方案,只能说明Unity不够体恤下情啊.这篇文章主要讲一下个人在使用过程中方案选择和优化过程,已做记录.顺便提下,开源很多意味着坑,还是要开实际需求. ...
- Unity UGUI图文混排(七) -- 下划线
之前更新超链接的时候,忘了搭配实现一个下划线的功能,这篇文章就是来补上这一个功能,时间有点长,一方面没有很好的思路,一方面也没多少时间. 先在网上收集了一下下划线的实现操作,一种是在文本下再创建一个文 ...
- Unity UGUI图文混排源码(三) -- 动态表情
这里是根据图文混排源码(二)进一步修改的,其他链接也不贴了,就贴一个链接就好了,第一次看这文章的同学可以先去看看其他几篇文章 Unity UGUI图文混排源码(二):http://blog.csdn. ...
随机推荐
- POJ 2391 Floyd+二分+拆点最大流
题意: 思路: 先Floyd一遍两两点之间的最短路 二分答案 建图 跑Dinic 只要不像我一样作死#define int long long 估计都没啥事-- 我T到死辣--.. 最后才改过来-- ...
- HDU 1716 排列2
排列2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- Vue 实现分页+输入框关键字筛选
分页的实现(Vue+Element)+输入框关键字筛选 1.这里用的是Element 自带的分页组件 <template> <div class="sales-table& ...
- netstat---显示Linux中网络系统的状态信息
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况. 语法 netstat(选项) 选项 -a或--all:显示所有连线中的Socket: -A<网 ...
- Mysql学习总结(13)——使用JDBC处理MySQL大数据
一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...
- 洛谷——P3384 【模板】树链剖分
https://www.luogu.org/problem/show?pid=3384#sub 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作 ...
- Onsctl 配置ONS服务(10G)
Onsctl Onsctl这个命令是用来管理ONS(Oracle Notification Service)是OracleClustser实现FAN Event Push模型的基础. 在RAC环境下. ...
- 【JEECG技术博文】JEECG 简单实例解说权限控制
JEECG简单实例解说权限控制 请大家点击这里为我们投票.2015博客之星.很多其他分享敬请期待 博文地址:http://blog.itpub.net/30066956/viewspace-18687 ...
- Vue 打包后报错 Uncaught TypeError: Cannot redefine property: $router
原因:就如报错提示所描述的,不能重新定义$router,说明是重复定了$router.通常是因为在项目中安装了vue-router的依赖并且用Vue.use()使用了vue-router,还在inde ...
- 解决ListCtrl控件第一列文字不能居中显示的问题/修改网格线
把CListCtrl设置为Report风格,但是插入第一列的时候(InsertColumn)的时候会发现文字不能居中.即使使用了LVCFMT_CENTER,其他列都可以正常居中,但第一列仍然靠左显示. ...