質問: 30; } という部分のscoreを何にすればいいのかがわかりませんでした。 ### 補足情報 使用端末 MacBookAir Unity 2018.1.0f2
回答: `public static int score = seconds;` これはエラーになる書き方なので `public static int score;` 定義はこうして `score = seconds;` どこかでこうしないと値が入りません。 ちなみにintとfloatは値型なので、「代入時の値」しか入りません。 例えばStart()で`score = seconds;`して、その後secondsの値が変わっても、 再度`score = seconds;`しない限りscoreは最初に代入された値のままです。 なので`score = seconds;`を入れるとしたらUpdateの最終行辺りが妥当かと思います。 それはそれとして、そもそも要件定義とコードが合っていません。 WatchTimeで分と秒を別変数にしていて、Resultシーンで表示したいのも分と秒なら、 scoreという1つの変数に結果を入れようとしているのは不自然です。 (ぶっちゃけsecondsだけ`[SerializeField] private float`にしている意味が分からないので、こいつも`public static float`にすれば`WatchTime.seconds`もエラーになりませんし、score変数は不要でしょう) 逆にResultシーンで表示したい(スコアとして持ちたい)のが「合計秒」(例えば1分30秒逃げたらscoreは90になる)ならば、`score = seconds;`と単純代入は誤りになります。 (`score = minute * 60 + seconds:`となるはずです) この辺をきちんと整理しないと混乱すると思います。 ちなみに 「シーン遷移前にPlayerPrefsに値を保存→シーン遷移後PlayerPrefsから値を取り出して表示」 という方法も一応あります。 staticで影響ありそうな場合はこちらの使用も考慮するといいかもしれません。