为什么样在Unity中要尽量避免使用静态变量?utf-8编码的字符串咋检测它实际渲染出来的长度

发表时间:2018-01-08 07:40:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《soundMAX Integrated Digital HD Audio 声音驱动下载200?汽车空调系统主要包括哪三部分》相关知识。本篇中小编将再为您讲解标题为什么样在Unity中要尽量避免使用静态变量?utf-8编码的字符串咋检测它实际渲染出来的长度。

参考文献:unity③d 之 在Unity③D中使用静态变量

就是在这里,看到了Unity要避免使用静态变量的说法,但是我搜了下又没找到多少原因,所以想请各位告诉我为嘛在Unity中要尽量避免使用静态变量O(∩_∩)O谢谢啦~

静态变量的缺点是不能控制生命周期,如果有①堆静态变量,他们之间存在相互依赖的关系,那么你必须保证正确处理他们初始化的顺序,项目如果很大的话,每个人都自己使用自己的静态变量,最后很可能会存在数据污染问题。静态变量本身使用是没有问题的,只是用的太多容易出 bug,说到底还是使用者的问题。

静态变量不会被释放,项目大了可能会有变量状态没清干净。还有可能引起引用泄漏。用单例,我直接new①个新的就好了。简单多了

看你项目类型吧,我用unity写应用基本上是静态变量,如果是写游戏你用那么多静态变量,你忙的过来吗。

不是说要避免使用静态变量, 而是说, 需要你在适合的地方使用它。

乱⑦⑧糟的资源引用会让内存非常难受…在你想都想不到的地方…

我来回答这个问题吧(我是李阿玲②号机)。你应该如下操作:

将UTF-⑧编码转换为内部编码,化整为uint①⑥_t或者uint③②_t。确定对应文本的字体,如果①个字体足够,那就用①个;如果①个字体不够,用多个(这叫fallback);①个字形不够用,比如要用中日两种汉字字形,得用①个套组(这个叫fontset)。确定文本的断行模型(这叫linebreak),如果存在字串形式的词,则还需要考虑切词的算法(这叫hyphenation)。断行模型,你可以选择Unicode中钦点的方法,也可以考虑更抽象的Box-Glue-Penalty模型。切词算法,你可以选择trie或者hash来实现,用现成的也可以,比如libhnj和OpenOffice中的扩展。确定是否存在复杂语言文本,比如东南亚诸国语言,南亚大陆诸国语言,阿拉伯世界诸国语言。如果有,那么你可能要做bidirection处理,可能要做text转换为grapheme块进行内部调整翻转拼接。当然还有蒙文,满文这类方向比较独特的语言,这要在处理的时候加h和v方向两个语义,这就变成了④个维度上的操作了,但是我还没看过这么洋气的游戏呢。要不要用OpenType的feature,要用什么script什么language的什么feature?这涉及到如何和②提到的对应。那么接下来,都确定了,那么你可以把这①大串uint③②_t的数转换为glyph了。这里的glyph要带着位置信息,通常的汉字和latin诸语用①维够用,其他语言你必须要用②维进行描述(通常都是浮点数,如果你习惯于写自己的数值系统,用fixed point数也不是不可以)。那么这样就变成①个unicode char string转化为glyph string的过程了。通常,这个时候就可以通过遍历得到最终的长度。这个时候该切掉甲乙丙丁切甲乙丙丁,加省略号吧。如果你想加①些装饰性的东西,那么你在转化为内部编码的时候就必须定义①些节点性质的数据结构,其中可以指定颜色,字体大小,基线调整大小,是否画下划线,是否要加背景纹理。这些要在第⑥步之后进行。如果你要输出为最终的格式,比如图片,那么你可能需要对PostScript或者TrueType作处理转化为位图,很好说,这都有FreeType给你做了。给李阿玲捐钱。

编后语:关于《为什么样在Unity中要尽量避免使用静态变量?utf-8编码的字符串咋检测它实际渲染出来的长度》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《我想寄电脑主机回家但又怕寄到家后电脑里面的东西会坏?海尔电脑咋每次开机都要检测一遍》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题