私はUnityプロジェクトを作っていますが、別の異なるスクリプト(そのアクティブなシーンにはリンクされていません)から現在のアクティブシーンのUIのテキストを編集する必要があります。私は何アクティブシーンのゲームオブジェクトを別のスクリプトから編集するには?
は
Scene scene = SceneManager.GetActiveScene();
Debug.Log (scene.name);
if (scene.name == "RangeView")
{
List<GameObject> activeObjects = new List<GameObject>();
scene.GetRootGameObjects(activeObjects);
for (int i = 0; i < activeObjects.Count; ++i)
{
GameObject gameObject = activeObjects[ i ];
if (gameObject.name == "Clubdigit") {
gameObject.GetComponent<Text>().text = 10.ToString();
}
else if (gameObject.name == "Balldigit") {
gameObject.GetComponent<Text>().text = 10.ToString();
} else if (gameObject.name == "Distancedigit") {
gameObject.GetComponent<Text>().text = 10.ToString();
} else if (gameObject.name == "Ballspeeddigit") {
gameObject.GetComponent<Text>().text = 10.ToString();
} else if (gameObject.name == "Distancedigit2") {
gameObject.GetComponent<Text>().text = 10.ToString();
} else if (gameObject.name == "Backspindigit") {
gameObject.GetComponent<Text>().text = 10.ToString();
} else if (gameObject.name == "Sidespindigit") {
gameObject.GetComponent<Text>().text = 10.ToString();
}else if (gameObject.name == "Launchangleindigit") {
gameObject.GetComponent<Text>().text = 10.ToString();
}
}
}
更新がシーンに反映されていないです。 アクティブなシーンに更新するにはどうしたらいいですか?
私はあなたのことをよくフォローしていません...スクリプトが実行されていない場合、何も起こりません。あなたは、あなたがこれをやっている目的を説明しようとしていますか?また、私はあなたのコードの読みやすさを助けるリファクタリングをいくつか行います。 – Maakep
ありがとうございます。私は方法を見つけた。私は、ゲームオブジェクトの子供を検索する必要があります。 – batuman