2016-08-01 14 views

Antwort

1

Dieser Code aus dem Zusammenhang genommen ist zu wenig Informationen, um eine tatsächliche Antwort zu ermöglichen, daher hier meine Meinung, die Ihnen helfen wird, dies besser zu untersuchen.

Meiner Meinung nach hängt die Verzögerung kaum mit den Berührungen des Betriebssystems zusammen, es ist höchstwahrscheinlich ein Problem im Zusammenhang mit anderen Operationen, die Sie bei jedem Frame ausführen. Android und iOS verwalten Threads, Rendering und Speicher sehr unterschiedlich, so dass die einfache Tatsache, dass Sie 60FPS erwähnen, mich glauben lässt, dass Sie eine Art Race Condition treffen: Die optimale Framerate auf Mobilgeräten ist 30, also würde ich vorschlagen, das zu starten Untersuchung, indem zuerst die Frame-Rate Begrenzung des folgend in einem Ihrem Skripte setzen:

void Awake() { 
     Application.targetFrameRate = 30; 
    } 

, dass genügend Rechenleistung, um den Motor zu verlassen und das Betriebssystem andere Aufgaben auszuführen, daher ist es ein guter Ausgangspunkt in Ihrer Untersuchung.

+0

@Giuseppe_De_Francesco Ich habe targetframerate = 60 verwendet, ich habe viele bewegliche Objekte, also wenn ich 30fps benutze, aber wenn 60fps Spieler manchmal Pannen und langsam bewegt, aber alles ist in Ordnung –

+1

@PeterisUlmanis das erklärt es dann, Sie sind mit einem Rennzustand der Ressourcenverwaltung konfrontiert. Bitte beachten Sie auch, dass 60FPS den Geräteakku ziemlich schnell kaputt macht ... keine gute Übung. Es gibt eine Menge Techniken, um auf dem Bildschirm viel los zu werden, während man bei weniger als 30 FPS läuft, um die Akkulaufzeit zu sparen: Ich würde vorschlagen, eine Theorie der Szenenoptimierung einzubauen, um dein Problem richtig zu lösen. –