TextMesh Pro SpriteAsset Load From Assetbundle
遇到问题
我们项目分两个Unity的工程,Art(美术资源工程),Client(代码工程)
在Art工程中的TextMeshProUGUI Text中使用Emoji,打包成AB之后,在Client运行时,spriteAsset的图集是从Resource目录读取出来的
软件环境
Unity3D 5.3.7p4
TextMesh Pro 1.0.555.0b11(Jul 06.2017)
KSFramework:https://github.com/mr-kelly/KSFramework
从Resource读取SpriteAsset
TextMesh Pro的Resource目录设置文件TMPSettings.asset 用于设置默认属性,比如默认的字体,图集
在Editor中运行,如果使用了Sprite标签,它会从默认图集中加载(Resource\xxspriteAsset.asset),比如我的设置文件
原理分析
当Text中使用了Sprite标签时,在运行时,TextPro会生成两个Gameobject:一个Text(渲染文字),SubMesh(渲染图片)
从Assetbundle加载spriteAsset
分析实现原理之后,我们知道,运行时,SubMesh的SpriteAsset默认是从Resource加载出来的,所以我们要做的就是替换掉SubMesh中 SpriteAsset的图片。
TextMeshPro的Text提供了一个接口方便我们替换掉这张图片
Lua实现的伪代码:
- AssetFileLoader.Load("ui/spriteassets/emojidata.asset", function(isoK, result)
- if not isoK or result:IsNull() then
- return
- end
- for i, tmpText in ipairs(tmpTexts) do
- tmpText.spriteAsset = result
- local child = tmpText:GetComponentsInChildren(typeof(CS.TMPro.TMP_SubMeshUI),true)
- if child then
- child.spriteAsset = result
- end
- end
- end)
替换SpriteAsset后:
注意查看 SpriteAsset的值,变成从ab中加载了。
文档资料
TextMesh Pro的资料,可以参考我之前的博客:http://www.cnblogs.com/zhaoqingqing/p/7471499.html
参考资料:http://digitalnativestudios.com/forum/index.php?topic=1018.msg8140#msg8140
TextMesh Pro SpriteAsset Load From Assetbundle的更多相关文章
- TextMesh Pro 超链接解析失败
前言 软件环境 Unity3D 5.3.7p4 TextMesh Pro 1.0.555.0b11(Jul 06.2017) UGUI做为UI解决方案 文档资料 TextMesh Pro的资料,可以参 ...
- TextMesh Pro Emoji Align With Text(表情和文字对齐)
前言 MMO游戏中需要富文件组件,大体功能包括图文混排,表情,超链接,文字动画等富文本功能,且DC数占用少. 本文选择Unity免费提供的TextMesh Pro 解决方案. 软件环境 Unity3D ...
- Unity资源解决方案之AssetBundle
1.什么是AssetBundle AssetBundle是Unity pro提供的一种用来存储资源的文件格式,它可以存储任意一种Unity引擎能够识别的资源,如Scene.Mesh.Material. ...
- Build AssetBundle, missing shader.
Build AssetBundle, missing shader. 0 My uniy version is 4.1.2f1. Every asset file packing to a sin ...
- Unity3D中AssetBundle应用
工程中的模型等资源转化为Prefab后,打包成AssetBundle,可以大幅降低资源的空间占有度,并且提高资源加载的效率. 一.AssetBundle的打包 先看下打包Prefab的脚本代码,这段脚 ...
- unity3d Resources.Load动态加载资源
初步整理并且学习unity3d资源加载方法,预计用时两天完成入门学习Unity3d常用两种加载资源方案:Resources.Load和AssetBundle Resources.Load就是从一个缺省 ...
- Unity—TextMeshPro
矢量文字,不会因为放大缩小而变的不清晰: 1.TextAsset Window/TextMeshPro/Font Assets Creator 创建TextAsset字体: SourceFont是.t ...
- 深入浅出聊优化:从Draw Calls到GC
前言: 刚开始写这篇文章的时候选了一个很土的题目...<Unity3D优化全解析>.因为这是一篇临时起意才写的文章,而且陈述的都是既有的事实,因而给自己“文(dou)学(bi)”加工留下的 ...
- 优化 从Draw Calls到GC
原文出处: 慕容小匹夫的博客(@慕容小匹夫) 欢迎分享原创到伯乐头条 前言: 刚开始写这篇文章的时候选了一个很土的题目...<Unity3D优化全解析>.因为这是一篇临时起意才写的文章 ...
随机推荐
- Liunx vi编辑器一些指令
最近几天学习了Liunx vi编辑器 的使用,感觉还比较容易.总结的一点心得: vi分为3个模式,命令模式,尾行模式,编辑模式. 1. 命令模式 与 编辑模式切换 a:光标向后移动一位进入编辑模式 i ...
- spring4+srpingmvc+mybatis基本框架(app后台框架搭建一)
前言: 随着spring 越来越强大,用spring4来搭建框架也是很快速,问题是你是对spring了解有多深入.如果你是新手,那么在搭建的过程中可以遇到各种各样奇葩的问题. SSM框架的搭建是作为我 ...
- ThreeJS的特效合成器和后期处理通道
最近要写个 web 交互式发光可交互的框架.没查到啥好资料,自己一个人摸索了很久,有些失望,可是毕竟是探索过的东西,所以做个记录,怀念我过去好多天掉的青丝(捂脸).我在前面那篇博客里面已经介绍了如何让 ...
- MySQL解压版配置步骤详细教程
解压mysql到D盘根目录 在解压路径下复制my-default.ini,修改名称为my.ini 在my.ini内容如下 [client]default-character-set=utf8 [mys ...
- 用一条SQL语句查出每门课都大于80分的学生的姓名
用一条SQL语句查出每门课都大于80分的学生的姓名,数据表结构如下: 建表SQL如下: ; -- ---------------------------- -- Table structure for ...
- python实战===如何优雅的打飞机
这是一个打飞机的游戏,结构如下: 其中images中包含的素材为 命名为alien.png 命名为ship.png 游戏效果运行是这样的: 敌军,也就是体型稍微大点的,在上方左右移动,并且有规律 ...
- 晓莲说-何不原创:java 实现二维数组冒泡排序
新手从业路-为自己回顾知识的同时,也希望和大家分享经验: 话不多说,上代码 public class 冒泡排序 { /** * @param admin * @2017.12.4 ...
- JSP6(JSP 指令与JSP 动作元素)
一.JSP指令用来设置整个JSP页面相关的属性 指令可以有很多个属性,它们以键值对的形式存在,并用逗号隔开. JSP中的三种指令标签: Page指令 Page指令为容器提供当前页面的使用说明.一个JS ...
- Docker 使用教程
概括 Docker与传统虚拟机的区别 与传统虚拟机的区别 Docker的安装 的安装 Docker daemon , client , containerd 镜像与容器操作 容器运 ...
- haproxy1.7编译安装配置
#haproxy1.7编译安装配置#高可用.负载均衡 使用 #haproxy1.7编译安装配置 #centos7 x86_64 #高可用.负载均衡 使用 #下载 #http://www.haproxy ...