2016-10-05 6 views

Antwort

4

Aufruf FindGameObjectsWithTag in jedem Frame ist sehr langsam. Rufen Sie das einmal in der Start Funktion an. Fügen Sie außerdem eine öffentliche Geschwindigkeitsvariable hinzu, mit der Sie die Geschwindigkeit ändern können. Sie können diese Geschwindigkeitsvariable im Editor ändern, bis Sie die gewünschte Geschwindigkeit erreicht haben. Stellen Sie sicher, dass Sie im Rest Ihres Skripts nachsehen und sicherstellen, dass Sie nicht GameObject.Find, FindGameObjectsWithTag oder ähnliche Funktionen in der Update Funktion verwenden.

GameObject[] spheres; 
public float moveSpeed = 50; 

void Start() 
{ 
    spheres = GameObject.FindGameObjectsWithTag("MySphere"); 
} 

private void Update() 
{ 
    UpdateSpheres(); 
    MoveShips(); 
} 

private void MoveShips() 
{ 
    foreach (Transform child in spheres[0].transform) 
    { 
     child.transform.position += Vector3.forward * Time.deltaTime * moveSpeed; 
    } 
} 
Verwandte Themen