对于上下文,我已经随着时间的推移实例化了多个GameObjects,它代表了我游戏中的得分。我知道如何改变它们被实例化的位置。
string scoreText = score.ToString ();
for (int i = 0; i < scoreText.Length; i++)
{
var go = (GameObject)Instantiate(Resources.Load(scoreText[i].ToString()));
go.transform.localPosition = new Vector3(0.02F + i * 0.01F, 0.13F, 0);
}
我不知道怎么做是改变另一个剧本中的位置。同样,对于上下文,在其他脚本中的Game Over上,我想要更改我实例化的这些对象的位置。
我尝试过GetComponent和GameObject的多种变体。我无法确定我想要访问的一个GameObject,因为它是多个不断变化的GameObjects。我觉得我没有看到这个权利。有谁知道怎么做?
答案 0 :(得分:1)
一种方法是让你的GameObject变量去一个类变量,以便你可以用其他方法访问它。但是如果你产生了许多对象,你可以制作一个GameObjects数组,然后通过迭代来找到你需要的对象。您可以将数组设为公共变量,以便其他脚本可以查看它。
答案 1 :(得分:0)
其他脚本可以访问脚本WindowsBase
和public
的数据,因此第一步是创建一个可以在主脚本中保存乐谱的变量:
static
在初始化期间,使用此变量保存分数:
public static GameObject[] Score;
此时,在游戏中通过脚本,您应该能够使用主脚本中的乐谱数据(如果这不起作用,请确保使用正确的命名空间和引用,但如果这两个脚本在同一个项目中应该没有任何问题):
string scoreText = score.ToString ();
Score = new GameObject[scoreText.Length];
for (int i = 0; i < scoreText.Length; i++)
{
Score[i] = (GameObject)Instantiate(Resources.Load(scoreText[i].ToString()));
Score[i].transform.localPosition = new Vector3(0.02F + i * 0.01F, 0.13F, 0);
}
如果你想通过脚本迭代游戏中的分数:
MainScript.Score //MainScript is the name of your main script