Unityでプログラム(スクリプト)を動かしてみた

「よし、基本も学べたし、いよいよプログラムを書くぞ!」


 スクリプト? プログラムを書く紙みたいのは前に作ったから、ダブルクリックで起動してっと。


「うーん、最初だし、プログラミングの世界で有名な『Hello World!』って奴を表示してみようかな」


 この『Hello World!』はどの言語でもお試しに使う、プログラミングのチュートリアルみたいなものだ。


「まあ、最初だし、コピペでいいか」


 プログラムのコピー&ペーストは本当はしてはいけないって、漫画で読んだことがある。

 今回は初心者だし、お試しだから別にいいだろう。

 適当にサンプルのプログラムを探して、コピペしよっと。


「うーん、なんか書いてることが微妙に違うな? まあ、たぶん動くだろ」


 『Start』って書いてるカッコの中に、『Console.WriteLine("Hello world!");』ってコピペしてみた。

 これで動くのだろうか?


 えーっと、Unityでのプログラムの動かし方はっと……。


「画面上部中央の再生ボタンを押せばいいのか。ポチッとな」


 んん? なんの変化も見られないぞ?

 なにか間違っているのか? とにかく、調べてみよう。


「なるほど。プログラムを書いただけじゃダメなんだ!」


 今の状態はゲームを身体で例えると、身体を動かすためのプログラムという筋肉がない状態だ。

 そして、ただ筋肉があるだけでもダメだ。『骨格』が必要になる。


 その『骨格』に当たるのが、『オブジェクト』と呼ばれるものだ。

 このオブジェクトにプログラムを付与することで、プログラム通りの命令を実行するようだ。


 身体を動かすためには、骨格となる『オブジェクト』、筋肉となる『プログラム(スクリプト)』が必要になる。


「よし、オブジェクトを作ってみよう! 右クリックだけで済むみたいだから、簡単みたいだ」


 Hierarchyの枠のなにもないところを右クリック。

 メニューが出るので、その中から『Create Empty』を選ぶ。


「お、GameObjectってのができた! これにさっきのスクリプトを付与してやればいいんだな?」


 GameObjectをクリックして、Inspectorのウィンドウを確認する。

 Transformってのがあるな。Inspectorのなにもないところに、スクリプトをドラッグ&ドロップする。

 これでGameObjectに、プログラムであるスクリプトを付与できた!


「よし、今度こそ動くだろ! あ、あれ? またなにも反応がない……。なにが悪いんだ? もっかい調べよう!」


 ……

 …………

 ………………


 原因がわかった!

 Unityには独自のプログラムの書き方があるみたいだ。

 それと、プログラムを書いただけで、保存をしてなかったのも悪いみたいだ。


 ちゃんと保存して、プログラムを書き換えないと反映されないみたいだ。

 上書き保存のショートカットは、Ctrl + Sキーだな。

 Unity用の書き方も確認しよう。


「えーっと、このサイトを見る限りだと、『Debug.Log』ってのを使えば表示できるみたいだ」


 Startのカッコの中に 『Debug.Log("Hello world!");』と書き込んだぞ。


 このStartってのは、『関数』と呼ばれるものらしい。

 詳しくはまだよくわからないけど、関数自体は便利なものみたいだ。

 そのうち、わかるときが来るんじゃないかな?

 今は便利なものとだけ覚えていよう。


「よし、上書き保存もして、スクリプトの内容も書き替えた。Unityの画面に戻って、再生ボタンを押そう」


 俺は祈る気持ちで再生ボタンを押す。


「おお! 画面下に『Hello world!』って表示されてる! でも、わかりづらい!!」


 俺はわかりづらいのが気になってしまい、何かないかと探してみる。

 『Project』ウィンドウの隣に、タブで『Console』とあるのを見つける。

 それをクリックしてみると、『Hello world! UnityEngine.Debug:Log (object) 

TEST:Start () (at Assets/TEST.cs:11)』と詳細に書かれているのがわかる。


 ふむふむ。これは『Debug.Log』を使ったから『Hello world!』と表示されたって説明しているんだな。

 おまけに、どのスクリプトの何行目ってのも書いているみたいだ。


 これはすごいな! これならどこかで間違えていても、どの行でエラーが出ているのかがわかるぞ!

 動きがわかったので、一旦停止ボタンを押してプログラムを止める。


「そういえば、『Start』のほかに『Update』ってのもあったな? そっちに書いたらどうなるんだろ? うーん、気になることは試そう! 切り取って張り付けてっと……」


 思い付きでスクリプトの内容を書き換える。上書き保存も忘れない。

 さてさて、どうなるかなっと。再生ボタンを押してみる。


「うわわっ! Console画面に『Hello world!』ってたくさん流れていく! ストップ、ストーップ!!」


 慌てて停止ボタンを押す。

 どういうことなんだと、Unityの使い方を説明しているサイトを確認する。


 『毎フレームごとに呼び出されて、実行される関数』と書かれている。

 つまり、この『Update』の中に書いた処理は『ずっと動き続ける』ってことか。

 どういうときに使うものなんだ、これは?

 今のところ、迷惑以外になにもないんだが……。


 調べてみた結果、ざっくり説明になるけれど、この『Update関数』というものは、『時間』を扱うものらしい。

 常に動き続ける。だから、『時間』だ。

 詳しいことはわからんが、俺が説明を読んだ感想はそれだ。


 『Start』と『Update』という二つの関数。

 『Start』は、書いているプログラムが、最初に動く関数ってとこか。

 『Update』は、書いているプログラムが、常に動き続ける関数だ。


 まとめると、こういうことみたいだ。

 厳密には違うんだろうけど、俺が思った感想としてはこんな感じだ。


 よし、これであとは俺の自由な発想次第でゲームが作れるな!

 ここから俺のゲーム制作が始まるんだ。楽しみだぜ!

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る