質問: frameCPS.ToString("F1") + " CPS"; } } ``` クリック部分(クッキーをクリックするとPushCookieが呼ばれます) ``` using System.Collections; using System.Collections.Generic; using UnityEngine; public class CookieManager : MonoBehaviour { public void PushCookie() { GameManager.gameManager.totalCookie++; } } ``` ### 追記 配列数参照の部分を変数にして[30]読み込もうとしたときに[0]にすれば解決出来ますが 出来ればそれ以外のやり方でお願いします。 追記し忘れていました、申し訳ないです。 ### 追記2 出力したい回数は1秒間でのクリック回数(30FPS固定なので過去30フレームの総クリック回数です。)
回答: リングバッファの考え方に近いかと思います。 ようは、現在のフレームカウントの次のフレームカウントの時の添え字を求めれば、最古のデータが格納されていることになります。 そうなると提示された下記ソースですと、 ``` frameCPS = frameTotalCookie[Time.frameCount % 30] - frameTotalCookie[Time.frameCount % 29 + 1]; ``` 求めるべき最古のデータが格納されている添え字がどんどんずれていきます。 (例 Time.frameCount = 29の時 最新データを格納した添え字(`Time.frameCount % 30`)は29となり、最古のデータが格納されているべき添え字は0のはずが`Time.frameCount % 29 + 1`だと1になります) 最古のデータは次のフレームで格納される場所なので`(Time.frameCount + 1) % 30`と計算すればいいはずです。