< Return to Video

The Invoke Functions - Unity Official Tutorials

  • 0:01 - 0:03
    Invoke は一定のディレイ(遅延)後に
  • 0:03 - 0:06
    関数呼び出しをスケジュールする関数です
  • 0:07 - 0:09
    この関数を利用することでタイミングが
  • 0:09 - 0:11
    重要なシステムを便利に構築することができます
  • 0:12 - 0:15
    いま表示されているのは空っぽのゲームオブジェクトが配置された Unity のシーンです
  • 0:16 - 0:19
    このゲームオブジェクトには InvokeScript がアタッチされています
  • 0:20 - 0:22
    この InvokeScript には
  • 0:22 - 0:24
    public なゲームオブジェクト target があります
  • 0:25 - 0:28
    またこの他にも SpawnObject というメソッドもあります
  • 0:28 - 0:31
    SpawnObject メソッドは単純に target オブジェクトを
  • 0:31 - 0:34
    位置 (0, 2, 0) でインスタンス化しています
  • 0:36 - 0:40
    そして Start メソッドで Invoke 関数を呼び出しています
  • 0:40 - 0:42
    Invoke 関数は 2 つのパラメーターを取ります
  • 0:42 - 0:46
    呼び出したいメソッド名の文字列と
  • 0:46 - 0:49
    ディレイとして指定したい秒数です
  • 0:51 - 0:54
    つまりこの行では 2 秒後に SpawnObject メソッドが
  • 0:54 - 0:56
    呼び出されるように指定されているわけです
  • 0:58 - 1:00
    なお Invoke を使って呼び出せるのは
  • 1:00 - 1:02
    パラメーターを取らず戻り値の型がない(void)
  • 1:02 - 1:05
    メソッドのみです
  • 1:06 - 1:09
    さて Unity に戻りシーンを実行してみましょう
  • 1:10 - 1:12
    実行してみると 2 秒後にオーブが
  • 1:12 - 1:15
    インスタンス化されて地面に落ちるのが確認できます
  • 1:16 - 1:19
    確かにこれは一度メソッドを呼び出すには便利そうですが
  • 1:19 - 1:21
    同じメソッドを何度も呼び出すときはどうしたらいいでしょう?
  • 1:22 - 1:24
    そういった場合は 単純に
  • 1:24 - 1:26
    InvokeRepeating 関数を使います
  • 1:28 - 1:30
    このシーンでは同じ 空っぽの
  • 1:30 - 1:32
    ゲームオブジェクトがあります
  • 1:32 - 1:34
    ただし今回アタッチされているスクリプトは
  • 1:34 - 1:36
    InvokeRepeatingScript です
  • 1:38 - 1:40
    InvokeRepeatingScript の中は
  • 1:40 - 1:42
    基本的に InvokeScript とほぼ同じ構造で
  • 1:42 - 1:44
    作られているのが見えるでしょうか
  • 1:46 - 1:49
    引き続き target という名前の public なゲームオブジェクトがあり
  • 1:49 - 1:51
    SpawnObject メソッドもあります
  • 1:52 - 1:54
    そしてこのスクリプトの SpawnObject メソッドも
  • 1:54 - 1:56
    target オブジェクトをインスタンス化していますが
  • 1:56 - 1:59
    今回は X と Z の座標がランダムになっています
  • 2:01 - 2:03
    さてこのスクリプトの Start メソッドは
  • 2:03 - 2:05
    InvokeRepeating 関数を呼び出しています
  • 2:05 - 2:07
    この関数は 3 つの引数を取ります
  • 2:07 - 2:09
    最初は呼び出したい
  • 2:09 - 2:11
    メソッド名の文字列
  • 2:11 - 2:13
    次に メソッドを呼び出すまで待機する秒数
  • 2:13 - 2:15
    最後にメソッドを繰り返し呼び出す際の
  • 2:15 - 2:17
    間隔となる秒数です
  • 2:19 - 2:21
    つまりこの行では 2 秒後に SpawnObject メソッドが
  • 2:21 - 2:23
    呼び出され その後は
  • 2:23 - 2:26
    1 秒ごとに繰り返し 呼び出されます
  • 2:28 - 2:29
    では実際に見てみましょう
  • 2:30 - 2:32
    このシーンは Unity 上でそのまま実行できます
  • 2:33 - 2:37
    実行するとまず 2 秒後にオーブがインスタンス化され
  • 2:37 - 2:39
    その後は 1 秒ごとに
  • 2:39 - 2:41
    新たなオーブが作成されていきます
  • 2:42 - 2:44
    オーブは無限に生成されていくので
  • 2:44 - 2:46
    やがてシーンがオーブで埋め尽くされます
  • 2:48 - 2:50
    というわけで InvokeRepeating で呼び出した
  • 2:50 - 2:52
    メソッドをどのように止めるかを
  • 2:52 - 2:54
    理解しておくことは重要です
  • 2:55 - 2:57
    このスクリプトによる Invoke コールの
  • 2:57 - 2:59
    全インスタンスを止めるには
  • 2:59 - 3:02
    CancelInvoke メソッドを使います
  • 3:03 - 3:06
    なお特定の Invoke だけを止めたい場合は
  • 3:06 - 3:08
    止めたいメソッドの名前を含む文字列を
  • 3:08 - 3:10
    パースすることもできます
Title:
The Invoke Functions - Unity Official Tutorials
Description:

more » « less
Duration:
03:13

Japanese subtitles

Revisions