0秒になったら終了させる
- まずは時間がゼロ秒になったら終わらせるプログラムを入れる場所を探す
- 探し方概要
- 概要:いろいろな場所にDebug.Log(“koko”);を書いて,1秒毎に変化する場所を探す
- 入力した行が実行された時にコンソールにkokoと表示される
- コンソールのCollapseはオフにする(Collapseは同じ内容は1行だけ表示する機能をオフにする)
- 実際の探し方
- 各関数{}内の最初か終わり近くにDebug.Log(“koko”);を記入
- 保存→ゲーム実行→Consoleを確認 を繰り返し,秒変化と同じタイミングで現れる箇所を探す
- ヒント:秒の変化と音(Tick)の再生は同期しているので,そのあたり,,,?
- その場所に以下のプログラムを入力する
if (gameTime < 1) { //go end StopCoroutine("loop"); Invoke("goEnd", 2f); }
変数 gameTimeが1未満になったら,時間制御をしているコルーチンloopを止めて,goEndの関数を2秒後に実行 の意味
こちらは2秒後に実行されるので,少し余裕が持てます.goEndを実行するタイミング(ここでは2秒)を変えて自分が最も良いと思う時間に変更してみましょう
なお2fのfはfloat(実数)の意味です.Unity上では実数の場合はfとつけるルールがあります
これでもいけます
if (gameTime < 1) { goEnd(); }
変数gameTimegが1未満になったらgoEnd関数を実行(こっちは2秒待たないのでせわしない)
シーンチェンジはどこ?
- シーン「end」にジャンプする関数 void ○○○(){ } はどこか再度確認すること(上でに書いてありますが)
変数宣言をいろいろ試す
- 変数宣言をする場所がある
- グローバル編
- プログラムのどこでも使えるけど,このプログラム外では使えない
- publicをつけるとインスペクタで設定できる.インスペクタで設定した値は,プログラムで宣言した値よりも優先される(プログラム側で変更はできる)
- privateをつけるか何もつけない変数宣言はインスペクタには表示されない
- ローカル編
- 関数内で使える(ちょいとメモ代わりや,変数の受け口に使える)
- 神編
- staticは神
- public static int mikeneko; と宣言すると,スクリプト名.mikeneko でゲーム内のどこでも使える
- ただし関数などによってはstaticを嫌うものがあるので,その際はnamespaceなどを使ってusingする
- グローバル編