ボール迷路の作り方を解説する本連載の第2回目は、実際にプログラムを書いて、ゲームを動かしていきます。
迷路のオブジェクトが完成していない方は、第1回の記事をご覧ください。
【中学生・高校生のためのUnityプログラミング入門】3Dゲームの作り方(1)迷路のコースをつくる
プログラムのファイル(C# Script)を作成する
まずはプログラムのファイルを作成します。Projectの「+」ボタンをクリックし、C# Scriptを作成します。

C# Scriptが作成されたら、他に何も操作せずに名前を「TableController」に変更します。「Table」と「Controller」の間にはスペースを入れないでください。C# Scriptをダブルクリックします。

C# Scriptが開いたときに、「TableController」と表示されていれば成功です。ここが違う名前になっている場合は、C# Scriptのファイルを一度削除して、もう一度「TableController」というファイルを作りなおしてください。

プログラムを書くときの注意点
ここでいくつかプログラムを書くときの注意点をお伝えします。
まず、void Start( ) に続く { } の中に書かれているプログラムは、ゲームがはじまったときに、一度だけ実行されるものです。一方、void Update( ) に続く { } の中に書かれているプログラムは、ゲームのプレイ中ずっと実行されるプログラムです。

カッコを書くときに「 ( 」と「 { 」があるので、使い分けに注意してください。

プログラムの最後に、「 ; 」(セミコロン)をつけるのを忘れないようにしてください。

「 // 」に続いて入力される文字はプログラムとして認識されません。「どんなプログラムを書いたのか?」など説明を残したいときに使います。

迷路の土台が右に回るプログラムをつくる
それでは、ここから実際にプログラムを書いていきましょう。
まずは、「Update()」に続き「 { } 」の中に、以下のプログラムを書きましょう。17行目は、右向き矢印(RightArrow)が押されたときという条件を指定していて、20行目は押されたときの動き(右向きに回転する)を指定しています。

Rotateに続くカッコの中の数字は、X軸、Y軸、Z軸のどの軸の周りに、どれくらい回転させるかを指定しています。また、小数点がある場合、数字の後に「f」の文字を追加します。
次に、Unityに戻って、「TableController」をHierarchyの中にあるCubeにドラッグ&ドロップします。この作業を、オブジェクトにプログラムを「アタッチ」すると言います。

うまくいくと、Inspectorに「Table Controller(Script)」が表示されます。

ここまでできたら、ゲームを実行してみましょう。「▶」ボタンをクリックすると、ゲームがスタートします。土台のCubeが回転しますが、その他のオブジェクトが回転しません。

迷路の土台全体が動くようにする
Cube2以下にも一つずつ「TableController」をアタッチしてもよいのですが、面倒なので、ここでは別のやり方を説明します。
まず、Hierarchyから「Create Empty」を選択し、空のオブジェクトをつくり、「Table」という名前に変更します。

次に、Shiftを押しながら迷路の土台を作るすべてのオブジェクトとSphereを選択して、Tableにドラッグ&ドロップします。

成功すると、下の図のようになります。

次に、先ほどCubeにアタッチした「TableController」を一度削除し、「Table」オブジェクトに「TableController」をアタッチし直します。
Cubeを選択し、Inspectorの中にあるTable Controllerの右にあるボタンをクリックし、「Remove Component」を選択します。

「TableController」を「Table」にアタッチします。成功すると、Inspectorに「Table Controller(Script)」が表示されます。

ここまでできたら、もう一度プログラムを実行します。今度は、迷路の土台全体が回転するようになりました。

第2回はここまでとなります。
次回、第3回では、ボールがゴールしたたときの処理を作っていきます。
【中学生・高校生のためのUnityプログラミング入門】3Dゲームを作ろう!(1)迷路のコースをつくる
プログラミング教室MYLABのUnityコース


プログラミングを学びはじめたとき、最初はわからないことがたくさんでてきます。そうしたときに、気軽に質問できないと、挫折してしまうことがあるので、最初は人に相談できる環境ではじめることをおすすめします。
当ブログを運営するプログラミング教室MYLABでは、中学生・高校生向けに、Unityを学ぶレッスンをご提供しています。
オンラインと教室のどちらでも学ぶことができるので、ぜひ一度体験授業に遊びにきてください!