Ich mache ein Unity-Projekt und ich muss Text von einigen UI der aktuellen aktiven Szene von einem anderen Skript bearbeiten (nicht mit dieser aktiven Szene verknüpft).Wie bearbeitet GameObject der aktiven Szene von einem anderen Skript?
Was ich tue, ist
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();
}
}
}
Das Update nicht auf der Szene reflektiert wird. Wie kann ich auf die aktive Szene aktualisieren?
Ich folge dir nicht ganz ... Wenn das Skript nicht läuft, wird nichts passieren. Könnten Sie versuchen zu erklären, zu welchem Zweck Sie dies tun? Außerdem mache ich etwas Refactoring, das der Lesbarkeit Ihres Codes in der Zwischenzeit helfen sollte. – Maakep
Danke. Ich habe den Weg gefunden. Ich muss das Kind des Spielobjekts suchen. – batuman