UnityでWebGLゲームを作った。いくつかの計算はすべてのフレームで必要なわけではないので、私はそれらをコルーチンに入れます。しかし、ゲームがバックグラウンドにあるとき、コルーチンは通常よりも遅く動作し、さらに5〜10秒待つ。アプリケーションにフォーカスがないとき、または別のタブにあるときにWaitForSecondsが機能しなくなる
たとえば、兵士が私に向かって走り、私は彼らを殺して弾丸を発射します。彼らが範囲内に入ると、彼らもまた発砲し始める。私は敵がコルーチンの範囲内にいるかどうかを調べた。私がブラウザ上で他のタブを表示すると、いくつかの敵が通常以上に近づき、いくつかの敵はゲーム画面を通過します。これは、ゲームをunplayableにします。
コルーチンが正しく機能するようにする方法はありますか、すべての計算方法を更新する必要がありますか?
例のコードは次のとおりです。
private IEnumerator ActionDeciderCoroutine()
{
while (true)
{
DoAction();
yield return new WaitForSeconds(Constants.ENEMY_THINKING_TIME);
}
}
私のアドバイス:これにコルーチンを使用しないでください。 – Draco18s
コルーチンの敵の範囲をどのようにチェックしますか?それを示すコードをいくつか教えていただけますか? 'update()'関数はコルーチンが 'Update()'に変わってしまうのと同じことは全く同じではありません – armnotstrong
プレーヤーの設定で "run in background"をチェックしましたか? – Cenkisabi