書籍『Unity 入門』の内容は、何らかのプログラミングを経験済みである人を対象としており、プログラミングの基礎については解説していません。既に「プログラミングとは何か」というイメージを持っている人が読むと、進めるうちに何となくやり方が分かってくるという流れを想定しています。
ここではプログラミングの経験がまったく無い人を対象として、 Unity に搭載されている JavaScript の使い方を解説していきます。
スクリプト (script) とは英語で「脚本」とか「台本」を意味する単語です。コンピュータの世界においてはソフトウェアを制御するためのプログラムのことを指して言います。スクリプトを記述するために使われる特殊な言語のことをスクリプト言語と言います。
一般化して説明するとこんな感じですが、まあ Unity の世界では「ゲームオブジェクトを動かすための指示書」みたいなもんだと思っておけばいいでしょう。例えば、あるゲームオブジェクトに “Dance” という名前のアニメーションを再生させたいと思ったら、スクリプトにこんな感じのことを書きます。
animation.Play("Dance");
animation
に "Dance"
を Play
しろ! ……って、まあそのまんまのことを書くわけですね。
ただ、スクリプトにはただ闇雲にそれっぽいことを書いていけばいいわけではありません。指示を記述するための一定のルールが存在します。 Unity が理解できる言葉(言語)を使う必要があるのです。
ここでは、その Unity が理解できる言葉のひとつである JavaScript について学んでいくことにしましょう。
まずは定番の Hello world プログラムを作ってみることにしましょう。 “Hello, world!” と出力するだけの簡単なスクリプトです。
なにはともあれ、新規プロジェクトを作成します。 File メニューから New Project… を選択します。
プロジェクトを作成するディレクトリを決めます。名前は何でもいいです。ここではとりあえず “ScriptStudy” プロジェクトとしてみました。
新規プロジェクトができたら、プロジェクト内のアセットとして JavaScript を新規作成します。 Project ビューの上部分にある “Create” メニューから “JavaScript” を選択するだけです。
新規作成した JavaScript の名前は “NewBehaviourScript” となっています。このまま使っても問題ありませんが、とりあえずそれっぽい名前に変えておきましょうか。ここでは “Test” という名前にしてみました。
スクリプトファイルをダブルクリックすると、スクリプトを編集するためのスクリプトエディタが起動します。標準では MonoDevelop という本格的なプログラミング環境が起動するようになっています。
ちょっと本格的過ぎて筆者はあまり好きではないのですが……まあとりあえずコレを使っていくことにしましょう。
新規作成された JavaScript の中身は、次のようになっています。
function Update () {
}
これは Unity でよく使われる Update 関数の雛形です。今回は使わないので、まずこの2行を削除して空っぽにしてしまいましょう。
そして、次のような内容にします。
print("Hello, world!");
これは Console ビュー に “Hello, world!” というテキストを出力するスクリプトです。
大文字、小文字は間違えないよう正確に入力してください。記号も間違えないように気をつけましょう。ここで使っているのは、括弧は普通の括弧「(
」、引用符はダブルクォーテーション「"
」文末の記号はセミコロン「;
」です。入力を終えたら MonoDevelop 上でファイルを保存します。
さて、このスクリプトを実行するには、スクリプトをどこかのゲームオブジェクトに与える必要があります。とりあえず Cube でも配置して、そこにスクリプトを与えることにしましょうか。
こうして作った Cube に Test スクリプトをドラッグ&ドロップして加えます。
ちゃんと Cube に Test スクリプトが追加されたかどうか、 Inspector ビューで確認してみましょう。 Hierarchy ビュー上で Cube を選択してから Inspector ビューを見てみると、次のように末尾に Test Script が追加されているはずです。
いよいよ実行です。ツールバーの Play ボタンを押してゲームを開始します。 Console ビューを開いて出力を確認してみましょう。
次のように出力されているはずです。
動きました! これで JavaScript の第一ミッションは終了です
ここで作成したスクリプトは次のような内容でした。
print("Hello, world!");
この単純な1行のスクリプトについて、詳しく解説してみましょう。
まず最初に記している print
について。これは Unity に対する命令のようなものだと考えてください。 print
は「後に続く括弧の中身を Console に出力する」という命令です。
括弧の中にはダブルクォーテーションで括ったテキストを記述しました。このようにダブルクォーテーションで括るのはJavaScript上で文字列を記す際のルールです。ちなみに「文字列」とは、複数の文字が連なってできたデータのことで、つまりはテキストのことです。
最後に添えられたセミコロン(;
)は、スクリプトの文がひとつ終わったことを表すものです。日本語の文章でいうところの句点「。」みたいなものだと考えてください。 JavaScirpt では、このセミコロンを使って文を区切っていきます。