Unity初心者必見!コルーチンの使い方の3つの基本ステップ

Sponsored Link


Unityでコルーチンの使い方の基本をマスターしたい!

どうも、Linです。内側、意識してます。

 

Unityの使い方での基本の応用編といっても過言ではないのが、

コルーチンの使い方

でしょう。

 

コルーチンとは簡単にいってしまうと、

ゲームのフレームの変化とは関係ないタイミングで実行する処理

のことです。

 

Unityのスクリプトは基本的に、

  • ゲームスタート時に発動する関数(Start関数)
  • ゲームのフレームが変わるごとに発動する(Update関数)

しか用意されてないので、処理実行のタイミングの自由がなかなかきかないのが現状なのです。

そこでコルーチンを使えば、

指定した秒数で処理を実行できるようになり、ゲーム作りの自由度が増すことになります。

 

Unityを勉強し始めた当初は、コルーチンなんて蒸発すればいいと思ってました。

しかし、いくつかゲームを作るようになった今となっては、ゲーム作りの必須の技だと感じています。

 

今日は、コルーチンの処理をいつも忘れてしまうので、備忘録としてコルーチンの使い方の基本を書き留めておこうと思います。

執筆にあたり、次の神記事を参考にさせてもらいました。

 

 

 

Unityの超基本!コルーチンの使い方の基本

ゲーム開始時からの経過秒数が1秒、5秒、7秒になったときに表示する簡単なサンプルを作ってみましょう。

 

https://gyazo.com/d719bfbea88bed49e951e0cd0440fb30

 

次のように、ヒエラルキーにText要素だけ置いて、適度に場所を移動して適度に大きくしてテキストの文字が見えやすいようにしましょう。

 

 

Step1. 空のオブジェクトを作成して、スクリプトをアタッチ

テキストの内容を変化させるためのスクリプト「GameManager.sc」を作成。

そして、そいつを実行するための空のゲームオブジェクト「GameObject」を作成しましょう。
https://gyazo.com/e2636e07a4868a87560ae8a88821d123
これで準備完了です。

 

 

Step2. コルーチンの関数を作る

フレーム数やゲームの開始時とは関係のないタイミングで発動したいコルーチン関数を作っていきます。

が基本になります。

この例でいうと、Sampleというのが関数名で、引数はなしということですね。

 

今回はMessageというコルーチン関数を作りたいと思います。

GameManager.scを次のように編集。

 

Step3. 実行させたい処理を追加

コルーチンの関数に、実行させたい処理を書いていきます。

今回のサンプルゲームでは、

テキストの内容を秒数ごとに変える

という処理を実行させたいのでしたね。

 

ということで、まずはテキストオブジェクトのテキストコンポーネントを取得し、messageTextというTextクラスの変数に代入します。

 

続いて、コルーチン関数内に処理を書いていきます。

(1・5・7秒)ごとにテキストの内容を変えたいので、コルーチン関数を次のようにしてみましょう。

 

 

Step4. 遅らせる時間の処理

最後に、コルーチン関数内で処理の実行を遅らせるコードを書いていきます。

というコードを書くと、引数で指定した秒数分処理が止まります。

たとえば、

とすると、ここで2秒コルーチン関数内の処理が止まってしまうわけです。

 

今回は、1秒・5秒・7秒ごとにテキストの内容を変更したかったので、

とでもしましょう。

 

Step5. コルーチン関数を実行する

あとは、コルーチン関数を呼び出すだけ。

呼び出し方は、

StartCoroutine (コルーチン関数名);

です。

 

今回はゲームの開始時に、Messageというコルーチンを呼び出したいので、Start関数を、

と変更しましょう。

 

GameManager.scのスクリプト全体では、

となっているはずです。

これでコルーチンの基本は終了です!

 

 

Unityのコルーチンの使い方も基本抑えればこわくない!

以上がUnityのコルーチンの使い方の基本でした。

  1. コルーチンの関数を作る
  2. 実行させたい処理を関数に記述
  3. 待つ時間の処理をかく
  4. コルーチンの関数を発動する

で大体コルーチンの基本はマスターできると思います。

 

実際に先ほどのUnityゲームを実行させてみると、
https://gyazo.com/d719bfbea88bed49e951e0cd0440fb30

 

という感じになるんじゃないですかね。

 

Unityのコルーチンを含めた重要な技たちをもっと深く学びたいという方にはTECHACADEMYの「オンラインブートキャンプ Unityコース」がおすすめです。

Unityプロの方にいつでもオンラインで質問できますからね。

よかったらチャレンジしてみてくださいね。

 

それでは!

Lin

飯橋凛(Ihashi Lin)

新卒で入ったネット広告代理店を1年半で退職。
その後、副業として活動していたウェブメディア運営のフリーランスへ。
現在はプログラミングの勉強に励み、0からフリーエンジニアの道を目指す。最近はキムチをまとめ買いしている


Sponsored Link

コメントはこちらからお願いします!



もう1本読んでみる