【问题标题】:Get correct position of letters using cachedTextGenerator使用 cachedTextGenerator 获取正确的字母位置
【发布时间】:2019-02-09 17:21:37
【问题描述】:

考虑一个包含许多文本段落的Text。使用UICharInfo,很容易找到某个角色的位置

例如,查找所有换行符...

TextGenerator tg = text.cachedTextGenerator;
int kText = tg.characterCount;
for (int i=0; i < kText; ++i)
  {
  if ( text.text[i] == '\n' )
    Debug.Log("found a newline at " + tg.verts[i * 4].position.y);
  }

这给出了正确的比率但它们都超出了一些比例因子

这似乎取决于很多东西(屏幕形状、像素、设置等等)。

这自然是在 Canvas 中使用 scale-with-screen-size。

如何获得字符的实际偏移量 - 用于在滚动视图中滚动到该点

【问题讨论】:

  • 将在赏金期开放后立即添加 巨大的赏金.. 可能超过 12 分。立即进入以获利
  • “可能超过 12 分” - 哈哈 :)
  • 嘿……来吧,程序员!

标签: unity3d unity3d-ui


【解决方案1】:

它使用 text.pixelsPerUnit 和他们所谓的舍入偏移量的组合。他们使用的代码是开源的,可以在here 找到。您正在寻找的相关行在函数中

protected override void OnPopulateMesh(VertexHelper toFill)

他们用来计算它们的所有函数都是公开的,应该很容易在你身边复制

【讨论】:

  • 一个不可思议的小费科尔顿。我会调查的。
  • 科尔顿,你当之无愧地赢得了赏金——谢谢!另一个 SEC 胜利 :) 我想我会开始另一个赏金问题,试图让“有人为此编写代码”呵呵
猜你喜欢
  • 2012-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多