こんにちは、ともくんのゲーム作り部屋にようこそ!
このページでは、
「Unityのスクリプトってなに?」
「スクリプトってどうやって作成するの?」
というお悩みの方に向けた内容となっています。
ゲーム制作をする際に、必ず必要になってくるのがスクリプトファイルです。
スクリプトとは、キャラクターやゲームオブジェクトを動かすための台本のようなもので、その書かれたスクリプトの通りゲームは動いていくことになります。
Unityでは、このスクリプトファイルを「C#」言語の形式で書いていき、それぞれの動きのプログラムを作成してゲーム制作を進めていくことになります。
そこで、このページでは、ゲーム制作で必要となってくるスクリプトについて、どんな役割があるのか、またUnityで実際にスクリプトファイルを作成したり、オブジェクトにアタッチする方法、実際にオブジェクトを動かす方法までを紹介していきます。
なお、このページでは、
Windows11
Unity Hub3.11.0
Unity6
のバージョンで解説しています。
ゲーム制作で必要なスクリプトとは?
まずは、Unityなどのゲーム制作で必要となってくるスクリプトについて紹介していきます。
ゲームオブジェクトを動かすためのファイル
スクリプトは、冒頭でも解説した通りで、ゲームにおける台本のようなものになっています。
もう少し詳しく言うと、キャラクターやオブジェクトをどのように動かすかをスクリプトに書いていくことで、その書かれた内容に沿ってキャラクターが動いていくことになります。
例えば、
など、ゲームでは様々な動きや計算が行われていて、それらは全てスクリプトと呼ばれるファイルに記述して、保存していくことになります。
そのため、ゲーム制作において、このスクリプトファイルは非常に重要なものとなっています。
Unityはプログラミング言語の「C#」でスクリプトを書いていく
Unityでゲーム制作する際のスクリプトファイルは、「C#(シーシャープ)」というプログラミング言語が使われています。
C#はコンパイラ言語とも呼ばれ、C#で書いたコードはコンピューターの理解できる「0」と「1」の数字だけの機械語に変換(コンパイル)されてから、コンピューターで実行されます。
C#はUnity以外でも、アプリケーションやAR・VRなどの開発でも、使われていることが多いプログラミング言語となっています。
たくさんのスクリプトを調べて覚えていこう
初めてUnityでゲーム制作をする場合、どうしてもこのC#言語のスクリプトを書く部分で躓くことが多くなると思います。
実際に、僕も全くプログラミング経験無しで、本などから独学で学び始めていますが、なかなか思った通りに上手くいかないことも多いです。
でも、その都度調べて修正してもう一度実行してを繰り返すことで、段々と知識が付いてきていると思います。
このブログでも、自分で実際にスクリプトを書いてみて上手くいったことなどをどんどん書いていきたいと思いますので、是非初心者の方には参考にしてもらえたら嬉しいです。
Unityでスクリプトを使う方法
ここからは、実際にUnityでスクリプトを使う方法を紹介していきます。
スクリプトファイルの作成方法
まずスクリプトを作るためには、スクリプトファイルを作成する必要があります。
スクリプトファイルの作成は、プロジェクトウィンドウの左上にある「+」ボタンをクリックします。

項目から「MonoBehaviour Script」をクリックします。

アセットフォルダ内にスクリプトファイルが作成されるので、ファイル名を入力します。

ファイル名を入力すれば、スクリプトファイルの作成が完成です。
なお、ファイル名は半角英数字で、自分が分かればなんでも良いですが、一般的にはパスカルケース(アッパーキャメルケース)と呼ばれる方式で書かれていることが多いです。
パスカルケースは、最初の文字を大文字として、その次に出てくる英単語の先頭の文字を全て大文字として書いていく形式です。
例.PlayerController、GameManagerなど
スクリプトはVisual Studioを使って書いていく
作成出来たスクリプトファイルをダブルクリックすると、MicrosoftのVisual Studioが開きスクリプトの中身を編集することができます。

スクリプトを編集する際は、このVisual Studioを使ってC#言語の型でコードを書いていくことになります。
もし、Visual Studioが開かない方は、インストールされていない可能性があるため、Visual Studioをインストールしておきましょう。
Unity Hubからモジュールを追加する画面でMicrosoft Visual Studioをインストールすることが出来ますので、詳しくは以下の記事を参照してみてください。
スクリプトはアタッチして使う必要がある
スクリプトはただ書いただけでは、ゲームを動かすことが出来ません。
Unityで配置したオブジェクトにスクリプトをくっつけることで、そのオブジェクトを動かすための台本に変わります。
このオブジェクトとスクリプトをくっつけることをアタッチと呼びます。
ここでは、このアタッチのやり方と、実際にスクリプトを作成しオブジェクトにアタッチして動かしてみましょう。
オブジェクトとスクリプトのアタッチ方法
Unityでアタッチするのは非常に簡単で、アタッチしたいスクリプトをアセットファイル内からドラッグして、ヒエラルキーウィンドウのオブジェクト上でドロップすれば、アタッチすることができます。

アタッチがちゃんとされたかどうかは、そのオブジェクトを選択した状態でインスペクターウィンドウ内を確認し、アタッチしたスクリプト名が表示されているかで分かります。

実際にオブジェクトにアタッチして動かしてみよう
ここからは実際に、簡単なスクリプトを作成してオブジェクトにアタッチしてみましょう。
まず、スクリプトファイル内で右に移動する動きのコードを書きます。
using UnityEngine;
public class Test1 : MonoBehaviour
{
void Update()
{
transform.Translate(0.01f, 0, 0);
}
}
次に、そのスクリプトファイルをドラッグして、ゲーム内にあるオブジェクト(今回は丸い図形)にアタッチします。

そしてゲームを実行すると、そのオブジェクトだけがちゃんと右に移動できているのが確認できます。
これでオブジェクトを動かすことが出来ました!
スクリプトは複数のオブジェクトにアタッチできる
先ほど作成したスクリプトファイルですが、一つのオブジェクトだけでなく複数のオブジェクトにアタッチすることができます。
やり方はこれまでと同じで、別のオブジェクト(今回は四角)に対して、スクリプトをアタッチしてあげれば問題ありません。

そしてゲームを実行すると、どちらのオブジェクトも同じ右に移動する動きをしています。
さらに、この状態でスクリプトファイルのコードを左に移動するコードに書き換えると、どちらのオブジェクトも左に移動することになります。
using UnityEngine;
public class Test1 : MonoBehaviour
{
void Update()
{
transform.Translate(-0.01f, 0, 0);
}
}
スクリプトは台本なので、台本が変わればアタッチしているオブジェクトの動きも、一緒に変わることになります。
一つのオブジェクトに複数のスクリプトをアタッチできる
オブジェクトに対しても、複数のスクリプトファイルをアタッチすることができます。
例えば、先ほどのスクリプトとは別に、今度は上に移動する動きのコードを書いたスクリプトファイルを新たに作成します。
using UnityEngine;
public class Test2 : MonoBehaviour
{
void Update()
{
transform.Translate(0, 0.01f, 0);
}
}
そして、このスクリプトを片方のオブジェクト(今回は丸)にのみアタッチしてみます。

インスペクターウィンドウで確認すると、丸い図形のオブジェクトにはどちらのスクリプトもアタッチされているのが確認できます。

この状態でゲーム実行をしてみると、丸い図形が左上に斜めに移動して、四角は左に移動したままなのが分かります。
これは、丸い図形には左に移動するスクリプトと、上に移動するスクリプトが2つアタッチされていて、四角の図形には左に移動するスクリプトだけがアタッチされているためです。
今回は簡単な例でしたが、様々なスクリプトを作りオブジェクトにアタッチしていくことで、ゲーム内で色んな動きを作ることが出来るのが、スクリプトファイルの役割です。
まとめ
このページでは、Unityにおけるスクリプトとはどういうものなのか、スクリプトファイルの作成やアタッチ方法、実際にオブジェクトを動かすところまで行っていきましたが、いかがでしたでしょうか?
スクリプトとは、台本のようなものでオブジェクトを動かすための命と言えます。
スクリプトが無ければ、ゲームが動くことは無いので、様々なスクリプトを自分で書いて作ってみましょう。
Unityでは、C#というプログラミング言語が使われていますが、初心者にとってはどうしてもハードルが高い部分ではあります。
当ブログでは、僕も全くの初心者からゲーム作りを始めていることもあり、初心者に分かりやすくスクリプトなどを紹介出来たらと考えていますので、是非色んな記事を読んで頂けたら幸いです。
最後までお読みいただきまして、ありがとうございました!
コメント