C#を使った開発の基本を覚えよう (5/5)
作成:2014-08-23 09:57
更新:2014-08-23 09:57
更新:2014-08-23 09:57
■StartメソッドとUpdateメソッド
このMonoBehaviourクラスは、コンポーネントしてゲームオブジェクトに組み込まれ、必要に応じてさまざまなイベントのメッセージが送られてきます。このメッセージに対応するメソッドを用意することで、そのゲームオブジェクトのイベント処理を組み込むことができます。
ということは、「どんなイベントでどういうメッセージが送られ、それに対応するメソッドはどう書けばいいか」を理解することで、さまざまなイベント処理が行えるようになる、ということになりますね。
デフォルトでは、クラスには2つのメソッドが用意されていました。これらは、もっとも多用されるイベントのメッセージ用メソッドなのです。
●Startメソッド
これは、初期化のためのメソッドです。Startメソッドは、シーンが開始され、そのスクリプトが組み込まれたゲームオブジェクトの動作が開始される際に一度だけ呼び出されます。ここで、必要な変数の初期化などの処理を用意しておけばいいでしょう。
●Updateメソッド
これは、実際にシーンがプレイされている際の処理を行うためのものです。これは、シーンが更新される際に呼び出されるものなのです。
Unityのシーンは、「フレーム」と呼ばれるものが高速に切り替え表示されることで動いています。このフレームが切り替わり表示が更新される際に発生するのがUpdateイベントです。このUpdateメソッドに処理を用意することで、画面が更新される際の処理を行うことができます。
更新する際のイベントですから、このUpdateイベントは、シーンを実行している間、常に連続発生している、という点を忘れないで下さい。
――では、実際にちょっとした処理を実行してみましょう。下のリスト欄がその例です。これを記述し、シーンを実行すると、Cubeがゆっくりと回転していきます。ここでは回転角度を示すnumフィールドを用意し、これを使ってCubeを回転させています。Startメソッドでnumに代入している値をいろいろと書き換えてみましょう。回転スピードが変わりますよ。
ここで行っているのは、ゲームオブジェクトを回転させる処理です。では次回は、これら「ゲームオブジェクトの位置や向きなどを操作する」ということから説明していくことにしましょう。
ということは、「どんなイベントでどういうメッセージが送られ、それに対応するメソッドはどう書けばいいか」を理解することで、さまざまなイベント処理が行えるようになる、ということになりますね。
デフォルトでは、クラスには2つのメソッドが用意されていました。これらは、もっとも多用されるイベントのメッセージ用メソッドなのです。
●Startメソッド
これは、初期化のためのメソッドです。Startメソッドは、シーンが開始され、そのスクリプトが組み込まれたゲームオブジェクトの動作が開始される際に一度だけ呼び出されます。ここで、必要な変数の初期化などの処理を用意しておけばいいでしょう。
●Updateメソッド
これは、実際にシーンがプレイされている際の処理を行うためのものです。これは、シーンが更新される際に呼び出されるものなのです。
Unityのシーンは、「フレーム」と呼ばれるものが高速に切り替え表示されることで動いています。このフレームが切り替わり表示が更新される際に発生するのがUpdateイベントです。このUpdateメソッドに処理を用意することで、画面が更新される際の処理を行うことができます。
更新する際のイベントですから、このUpdateイベントは、シーンを実行している間、常に連続発生している、という点を忘れないで下さい。
――では、実際にちょっとした処理を実行してみましょう。下のリスト欄がその例です。これを記述し、シーンを実行すると、Cubeがゆっくりと回転していきます。ここでは回転角度を示すnumフィールドを用意し、これを使ってCubeを回転させています。Startメソッドでnumに代入している値をいろいろと書き換えてみましょう。回転スピードが変わりますよ。
ここで行っているのは、ゲームオブジェクトを回転させる処理です。では次回は、これら「ゲームオブジェクトの位置や向きなどを操作する」ということから説明していくことにしましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
using UnityEngine; using System.Collections; public class myscript : MonoBehaviour { private float num; // Use this for initialization void Start () { num = 1.0f; } // Update is called once per frame void Update () { this.transform.Rotate(num, num, num); } }
※関連コンテンツ