LemonteaのUnity部屋

LemonteaのUnity部屋

Unityの使い方とかです~

初めてのスクリプト(0.1) C#未経験でUnityのスクリプトを書く

こんにちは。レモンティーです。

今回は、C#はやったことないけどUnityでスクリプト書きたい
という人のために、

とりあえず「初めてのスクリプト」シリーズで読んだことを
すぐ使うのに必要な基礎だけを書きたいと思います。

まずは、Create>C#Script でスクリプトを作りましょう。

名前はTestとかでいいです。
さっそく開きます。

f:id:sawalemontea:20170808001720p:plain

こんな画面がでます。
なにやらすでに書いてありますね。
でも大半はおまじないだと思ってスルーして大丈夫です。

というわけで5行目から見てみましょう。
この文の最後に { がありますよね? これをクリックしてみてください。
16行目の } に色がつきました。

この{ }の中が、さっき名付けたTestクラスの内容になります。

Testクラスのなかに、すでに二つほど中身がありますね。
これらはメソッドと呼ばれます。
よく使われるか なにかの理由で、Unity側がデフォルトで用意してくれているんですね。

これらも、{ }の中が、それぞれStartメソッドとUpdateメソッドの中身になります。
はじめはだいたいこのどちらかの中に書いていくことになります。

なにが違うかというと、実行されるタイミングです。
Startメソッドは最初に一回だけ実行されます。
それに対してUpdateメソッドは毎フレーム実行されます。
1フレームはだいたい1/60秒なので、Updateメソッドは約1/60秒に一回実行されるということです。

さて、クラスとかメソッドとか言葉がでてきました…

プログラムはツリー構造みたいになっていて、
その各階層の呼び名だとイメージしてみてください。

ひとつのプログラムは複数のクラスからなり、
それぞれのクラスには複数のメソッドがあり、
各メソッドの中に具体的な処理が書かれているイメージです。

たとえばゲームのプログラムなら
プレイヤークラス、敵クラス、メニュークラス などがあり
プレイヤークラスの中には
移動メソッド、攻撃メソッド、アイテムメソッド などがあり
移動メソッドの中には
上ボタンが押されたら上に1動く などの具体的な処理が書かれている感じですね。

なので、これから初めてのスクリプトを読んで知ったことは
メソッドの中に書いていくことになります。

メソッドは普通、自分で実行したいときに呼び出すのですが、
先ほどかいた通り、Unityではデフォルトで
二つのメソッドがすでに書かれていて、
これらは自分で呼び出さなくても
さっき紹介したタイミングで勝手に実行されます。

前置きが長くなりましたが、
実際にメソッドの中身を書いてみます。

シンプルなメッセージ表示です。

Startメソッドの中に
Debug.Log("あいうえお");
と書いてください。
最後の ; をお忘れ無く。これが文の終わりの記号です。

そうしたら、フロッピーマークで保存して、
閉じてUnityの画面にもどります。

f:id:sawalemontea:20170808001739p:plain

適当なオブジェクトにアタッチしてから実行してみましょう。

f:id:sawalemontea:20170808001753p:plain

Consoleにメッセージが表示されましたね。
確かに始まってすぐに一度だけ実行されています。

そもそもConsoleがないぞ!ってひとは、
Window>Consoleでだせます↓

f:id:sawalemontea:20170808001808p:plain


f:id:sawalemontea:20170808001822p:plain


clearを押すとメッセージを消せます。


さて、今度はUpdateメソッドに書いて見ましょう。
もう一度スクリプトを開きます。

こんな感じです。
紛らわしいのでStartの中身は消しておきましょうか。

f:id:sawalemontea:20170808001836p:plain

また戻って実行してみます。

f:id:sawalemontea:20170808001851p:plain

こんどはすごいペースで呼ばれましたね。

だいたい5秒で301回ですから、確かに毎フレーム呼ばれてますね。
(Startの1回は消したので偶然ですよ)
オブジェクトの移動とかは毎フレーム位置を計算するためここに書くことがよくあります。

これでとりあえず、これから読んだ知識をどこに書けばいいかはわかりました。

次回は
四則演算と条件分岐、変数の型とかに触れておきます。

Next

sawalemounity.hatenablog.com