Edited at

UnityのTextで特定の1文字の座標を取得する方法

More than 1 year has passed since last update.

以下は、UnityEngine.UI.Textの各文字それぞれの座標を取得するコードです。

Text message;

// 中略

IList<UIVertex> verts = message.cachedTextGenerator.verts;
float unitsPerPixel = 1 / message.pixelsPerUnit;
for (int i = 0; i < message.text.Length; i ++) {
int vertIndex = i * 4;
UIVertex topLeftVert = verts[vertIndex];
topLeftVert.position *= unitsPerPixel;
UIVertex bottomRightVert = verts[vertIndex + 2];
bottomRightVert.position *= unitsPerPixel;
Vector3 centerPosition = (topLeftVert.position + bottomRightVert.position) / 2f;
print (string.Format("「{0}」の中心座標は{1}です", message.text[i], centerPosition));
}

i を指定してあげれば、特定の文字の座標が取得できます。