こんにちわ、横浜すみっこクリエイター
です。Unityでゲームを制作して販売するまでの軌跡を描くゆにすち!の入門編です!
今回は、前回作成したC#スクリプトに少しだけ手を加えて、Unityで動くかどうか、試してみましょう。
ゆにすち!シリーズとは
このシリーズではUnityでSTEAM販売を目指す!略してゆにすち!と銘打ち、モデリングもプログラミングも企画も販売も何から何までぜ~んぶド素人の が、PCゲームを考え、制作して、販売するまでの風景を履歴として残していくものです。
この入門編では、Unityの基本的な使い方やゲームの構造について学んでいきます。
この記事のポイント!
Debug.Log("~");
はコンソールに文字列を表示する構文!- アセットとして生成しただけでは、スクリプトは実行されない!
- スクリプトを実行させるにはオブジェクトにアタッチする必要がある!
- ファイル名とクラス名が不一致だと、Unityはクラッシュする!
動作確認コードを追加
前回作成したスクリプトファイルを開きます。

次に、動作確認用にコードを追加しましょう。Start()
メソッドを次のように変更します。
void Start()
{
Debug.Log("Startメソッドが呼ばれたよ!");
}
10行目にコードを追加しました。これは、以前「Unity とVisual Studio Code の連携!」で使用した構文と同じです。
Debug.Log("~");
はコンソールウィンドウに文字列を表示する構文で、日本語も扱えます。
Ctrl + Sで保存しておきます。
Unityでスクリプトを実行?
では、さっそくUnityで実行してみましょう。

Unityのエディター画面に戻って、▶(再生)をクリックします。
コンソールウィンドウに「Startメソッドが呼ばれたよ!」と表示されたでしょうか?

表示されていないと思います。なぜでしょうか。
オブジェクトにアタッチ!
作成したスクリプトファイルは、プロジェクトウィンドウを右クリックして作成しました。つまり、アセットとして生成したに過ぎません。
スクリプトに限ったことではありませんが、アセットとして生成しただけではUnityで再生した際に読み込まれることはありません。 アセットに置いてあるだけでは、小道具として準備したけれど倉庫から取り出していない状態のようなものです。
再生時にスクリプトを実行させるためには、シーンとスクリプトファイルを関連づける必要があります。シーン自身が呼び出せるのは、オブジェクトだけです。そこでオブジェクトを介して関連付けをします。スクリプトを、オブジェクトのコンポーネントにすることで実行されるようになります。
やってみましょう。

ヒエラルキーウィンドウで右クリックして、空のオブジェクトを作成をクリックします。

作成されたオブジェクトに、「SampleScript.cs」をドラッグ&ドロップ*します。これでスクリプトがゲーム内で実行されるようになります。
インスペクターウィンドウからコンポーネントの追加をしても同じ結果になります。
作成した「オブジェクト」を選択した状態でインスペクターウィンドウを見てみると、スクリプトがコンポーネントとしてアタッチされていることがわかります。
スクリプトをアタッチするとき、エラーが発生してUnityがクラッシュしてしまった方がいるかもしれません。

スクリプトファイル名とクラス名が不一致の場合、Unityはクラッシュして、上のようなポップアップを発出します。注意してください。
気を取り直して、ゲーム再生!
これで準備ができたはずです。再度実行させてみましょう!

コンソールウィンドウに「Startメソッドが呼ばれたよ!」と表示されました!
まとめ
今回は、アセットとして生成したスクリプトを実行させるには、オブジェクトのコンポーネントとしてアタッチして、シーンと関連付ける必要がある、というお話でした。これで記述したコードをゲームに反映する準備ができました。
次回予告
Next time on... ユーザー操作の取得!
次回はキーボードやマウスの操作を拾うことに挑戦します。少しずつ少しずつですが、前に進んで行きましょう!
では、今回はこの辺で。
コメント
コメントを投稿