首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得个人字符在TextMeshPro (统一)中的位置?

如何获得个人字符在TextMeshPro (统一)中的位置?
EN

Game Development用户
提问于 2017-12-17 11:19:33
回答 1查看 2.4K关注 0票数 1

我在做打字游戏。在调用OnBecameInvisible()事件之前,用户必须输入的单词会掉下来。

当用户输入一个字符时,我想给它施加一个力和一个力矩,并使它下降。但是要做到这一点,我必须在字母位于单词内部的位置实例化一个TextMeshPro GameObject。但我怎么能得到那个职位呢?

我只想说清楚:

EN

回答 1

Game Development用户

发布于 2019-01-16 13:49:20

现在已经很晚了,但对于一些人来说,他们对谷歌有点兴趣:

这里最好的解决方案是为所有字母创建一个GameObject和一个带有一个父GameObject的Textmesh,然后在KeyManager中注册您生成的所有字母,每次您按下一个键,查看这个KeyManager,得到字母GameObject到SetParent(null),然后将该字母发送出去。

您可以很容易地使用脚本生成此层次结构,其中提供一个字符串作为参数。

代码语言:javascript
运行
复制
public class KeyManager : MonoBehaviour
{
    List<GameObject> ListOfSpawnWord = new List<GameObject>();

    public void EjectLetterIfExist(string a_letter) {
        foreach (GameObject currentGameObject in ListOfSpawnWord) {
            GameObject letterToKickAway =  currentGameObject.transform.Find(a_letter+"_GO").gameObject;//get the GameObject you want kick away
            if (letterToKickAway != null)
            {
                letterToKickAway.transform.SetParent(null);
                letterToKickAway.GetComponent<Rigidbody2D>().AddForce(new Vector2(-1, 0) * 100);
            }
        }
    }
    public void AddSpawnedWord(GameObject a_gameobject)
    {
        ListOfSpawnWord.Add(a_gameobject);
    }
}
票数 1
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/152247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档