我在做打字游戏。在调用OnBecameInvisible()事件之前,用户必须输入的单词会掉下来。
当用户输入一个字符时,我想给它施加一个力和一个力矩,并使它下降。但是要做到这一点,我必须在字母位于单词内部的位置实例化一个TextMeshPro GameObject。但我怎么能得到那个职位呢?
我只想说清楚:
发布于 2019-01-16 13:49:20
现在已经很晚了,但对于一些人来说,他们对谷歌有点兴趣:
这里最好的解决方案是为所有字母创建一个GameObject和一个带有一个父GameObject的Textmesh,然后在KeyManager中注册您生成的所有字母,每次您按下一个键,查看这个KeyManager,得到字母GameObject到SetParent(null),然后将该字母发送出去。
您可以很容易地使用脚本生成此层次结构,其中提供一个字符串作为参数。
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);
}
}
https://gamedev.stackexchange.com/questions/152247
复制相似问题