こんにちは。RYUです。
ゲームエンジン Unityのお勉強第2回。
今回は簡単なスクリプトを書いてみる事と、シーン切り替えについて見ていきたいと思います。
スクリプトを書けるようになると、やれる事が格段に増えます。むしろ必須と言っても良いかと思います。まずは簡単なスクリプトの書き方をマスターして慣れる事から始めていきましょう。
3. スクリプトを書いてみよう!
●3.1 スクリプトを作成してみましょう
まずはスクリプトを新しく作成するところからです。この手順は複数あります。いくつか紹介しますがどの手順でも作成可能です。



AddComponent以外の方法でスクリプトを作成した場合は、名前変更してゲームオブジェクトに関連付けましょう。スクリプトをマウスで掴んで目的のゲームオブジェクト上にドラッグ&ドロップすればOKです。スクリプトも1つのコンポーネントであり、すべてのコンポーネントはゲームオブジェクトに関連付ける事で動作させることが出来ます。

実際に書いてみましょう。「スクリプトを編集」でエディタが起動します。

●3.2 実際にスクリプトを書いてみましょう
「スクリプトを編集」でスクリプトを開いてみます。事前にUnityがクラス作成してくれている事が分かります。

TestScript クラスが作成されていますが継承クラスであり、その基底クラスとして MonoBehaviour というクラスが使用されている事が分かります。MonoBehaviour クラスって何でしょうか。
MonoBehaviour(モノビヘイビアと読みます)クラスはUnityでスクリプトを書く際の心臓部の機能になります。このクラス継承が無ければそもそもゲームオブジェクトに関連付けする事も出来ず、またこのクラスを継承する事で様々な制御やイベント処理を簡単に実装する事が出来ます。
このクラスを理解する事は、Unityを使いこなせる中級者以上を目指す上では欠かせない要素です。ただ今回は初級編ですのでこのクラスを掘り下げる事は避けたいと思います。Unityでスクリプトを書く為に必ず必要になるおまじないだと考えてください。もちろん興味を持たれた方はMonoBehaviourを色々と検索されてみる事をオススメ致します!かなり多機能で奥が深いです。
それではスクリプトを書き替えてみましょう。今回は簡単な変更として、キーボードの矢印キーを押下するとCubeがその方向へ移動するプログラムを書いてみます。

それではスクリプトを保存して実行してみましょう。矢印キーを押下するとCubeが移動出来ました。

最初のフレームで位置を記憶し、2度目以降のフレームでキー入力を読み取って位置情報を更新するだけ。たったこれだけのスクリプトでも単純な座標移動であればキャラクタを自由に動かせてしまいます。描画の更新処理などは全部Unityが裏方でやってくれます。簡単ですね!
スクリプトで実現出来る事は非常にたくさんあると思いますが、下記にいくつか例を挙げます。
色々なことが出来るようになればゲーム作りがますます楽しくなりそうですよね。
目指せ、スクリプトマスター!
機能 | 例 |
---|---|
ゲーム制御 | プレイヤーの移動、ジャンプ、攻撃、 アイテムの取得、スコアの加算、ライフ管理、 ゲームクリア、ゲームオーバー、画面切り替えなど |
AI制御や演算処理 | 敵キャラクタの行動パターン、 イベントトリガー制御、 当たり判定、 経路検索処理など |
カメラ・演出制御 | カメラの追従・ズーム・切り替え、 アニメーションの再生・制御、 エフェクトの発生など |
UI・インタラクション | ボタンなどのUI操作、 メニュー画面操作、キー入力やマウス制御など |
データ管理 | セーブ/ロード、 データベースやクラウド制御など |
マルチプラットフォーム対応 | PC・スマホ・VR・ARなどへの対応、 GPSの活用など |
4. シーンを切り替えてみよう!
Unityではゲームの1画面などの単位をシーンと呼びます。最初にタイトル画面があり、スタートするとゲーム画面が表示され、クリアするとエンディング画面が出てくるかもしれません。それら1つ1つが別々のシーンとして作成され、切り替える事で運用する事が出来ます。
それぞれのシーンは全く異なるゲームオブジェクトの配置が可能ですので、うまく使えば単調な画面のゲームでも飽きにくい工夫などが出来るかもしれませんね。
●4.1 シーンを作成してみよう
もうお気づきの方もいらっしゃると思いますが、最初に新規プロジェクトを作成した時のゲーム画面、これも1つのシーンです。つまり知らぬうちに1つのシーンを作成していたという事になります。

では別のシーンを作成してみましょう。

シーンが作成されたら新しいシーンファイルをダブルクリックしてみましょう。シーン設定が切り替わります。

●4.2 シーンを切り替えてみよう
では “SampleScene” から “New Scene” へ切り替えるにはどうすれば良いでしょうか。
Unity では シーンマネージャーという機能を利用する事でシーン切り替えが実現出来ます。
試しに、最初に矢印キーの押下で移動させることが出来た”SampleScene”のCube へ、
さらにスペースキーを押下するとシーンが切り替わるコードを考えてみます。

さあ、これでシーン切り替えが完成…とはいかず、残念ながらこのまま実行するとシーン切り替えの瞬間にエラーが表示されます。これは、”SampleScene” シーンが “New Scene” シーンの存在を知らないからです。

これを解消するためにはビルド設定を使用します。ファイルメニュー > ビルド設定 で開く事が出来ます。ここで、ビルドで含まれるシーンを選ぶ事が出来ますので、各シーンへ切り替えながらそれぞれを追加します。

さあ、これで準備が出来ましたので実行してみます。
今までと同じく矢印キーでもCubeが動きますが、スペースキーを押下すると…

これでシーン切り替えが出来ました。シーン切り替えのスクリプトと、実行前にシーンをビルド設定に登録しておかなければいけない事を覚えておきましょう。
シーン切り替えはそれだけであれば一瞬で切り替わりますが、画面を切り替える演出にも色々とあると思います(フェイドイン・フェイドアウトとか、画面スライドとか)。そういった演出に凝ってみるのも腕の見せ所かなと思います。
次回
次回は初級編3 にて静的クラスとプレハブ機能について解説いたします。
関連記事
-
第1回 Visual C++で作成したDLL内のクラスをC#で利用する方法
こんにちは、ILCです。 Visual C++ (以下 VC++)で作成されたDynamic...
公開日:2024.01.19 更新日:2024.01.19
tag : Windows
-
-
-
第1回 ラズパイを使用したBLE通信 ~ ディスプレイ、キーボード、マウスを接続しないで設定 前編 ~
こんにちは、GTです。よろしくお願いします。 最近業務でラズパイのBluetooth機能を使...
公開日:2021.12.24 更新日:2021.12.24
tag : Bluetooth Raspberry Pi
-
【新機能探訪】Android 13から導入された『アプリごとの言語設定』
こんにちは、KNSKです。よろしくお願いします。 今回は Android13の新機能である『...
公開日:2022.12.09 更新日:2022.12.09
tag : スマートデバイス
-
こんにちは。WwWです。 システム系の開発をしていると様々な問題が起こります。 そこで今回は...
公開日:2023.04.28 更新日:2023.04.28