HOME » » » » HERE

ゆにすち入門編(この画像は、https://www.pakutaso.com/さまから借用しています)

こんにちわ、横浜すみっこクリエイターととです。

Unityでゲームを制作して販売するまでの軌跡を描くゆにすち!入門編です!

今回は、前回作成したC#スクリプトに少しだけ手を加えて、Unityで動くかどうか、試してみましょう。

ゆにすち!シリーズとは

このシリーズではUnityでSTEAM販売を目指す!略してゆにすち!と銘打ち、モデリングもプログラミングも企画も販売も何から何までぜ~んぶド素人のととが、PCゲームを考え、制作して、販売するまでの風景を履歴として残していくものです。

この入門編では、Unityの基本的な使い方やゲームの構造について学んでいきます。

この記事のポイント!

  • Debug.Log("~");はコンソールに文字列を表示する構文!
  • アセットとして生成しただけでは、スクリプトは実行されない!
  • スクリプトを実行させるにはオブジェクトにアタッチする必要がある!
  • ファイル名とクラス名が不一致だと、Unityはクラッシュする!

動作確認コードを追加

前回作成したスクリプトファイルを開きます。

ゆにすち(「VSCode」で開かれたスクリプトファイル) VS Codeで開かれたスクリプトファイル

次に、動作確認用にコードを追加しましょう。Start()メソッドを次のように変更します。

void Start()
{
  Debug.Log("Startメソッドが呼ばれたよ!");
}

10行目にコードを追加しました。これは、以前「Unity とVisual Studio Code の連携!」で使用した構文と同じです。

Debug.Log("~");はコンソールウィンドウに文字列を表示する構文で、日本語も扱えます。

Ctrl + Sで保存しておきます。

Unityでスクリプトを実行?

では、さっそくUnityで実行してみましょう。

ゆにすち(「再生ボタン」をクリックします) 再生ボタン

Unityのエディター画面に戻って、▶(再生)をクリックします。

コンソールウィンドウに「Startメソッドが呼ばれたよ!」と表示されたでしょうか?

ゆにすち(表示されるべきコマンドが表示されていません) 何も表示されていないコンソールウィンドウ

表示されていないと思います。なぜでしょうか。

オブジェクトにアタッチ!

作成したスクリプトファイルは、プロジェクトウィンドウを右クリックして作成しました。つまり、アセットとして生成したに過ぎません。

スクリプトに限ったことではありませんが、アセットとして生成しただけではUnityで再生した際に読み込まれることはありません。 アセットに置いてあるだけでは、小道具として準備したけれど倉庫から取り出していない状態のようなものです。

再生時にスクリプトを実行させるためには、シーンとスクリプトファイルを関連づける必要があります。シーン自身が呼び出せるのは、オブジェクトだけです。そこでオブジェクトを介して関連付けをします。スクリプトを、オブジェクトのコンポーネントにすることで実行されるようになります。

やってみましょう。

ゆにすち(「空のオブジェクト」を作成します) 「空のオブジェクト」を作成

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

ゆにすち(スクリプトをオブジェクトにドラッグ&ドロップします) スクリプトをオブジェクトにアタッチ

作成されたオブジェクトに、「SampleScript.cs」をドラッグ&ドロップ*します。これでスクリプトがゲーム内で実行されるようになります。

インスペクターウィンドウからコンポーネントの追加をしても同じ結果になります。
ゆにすち(インスペクターウィンドウからもアタッチされたことが確認できます) インスペクターウィンドウでもスクリプトのアタッチが確認できる

作成した「オブジェクト」を選択した状態でインスペクターウィンドウを見てみると、スクリプトがコンポーネントとしてアタッチされていることがわかります。

スクリプトをアタッチするとき、エラーが発生してUnityがクラッシュしてしまった方がいるかもしれません。

ゆにすち(Unityがポップアップとともにクラッシュしてしまうことがあります) クラッシュ画面

スクリプトファイル名とクラス名が不一致の場合、Unityはクラッシュして、上のようなポップアップを発出します。注意してください。

気を取り直して、ゲーム再生!

これで準備ができたはずです。再度実行させてみましょう!

ゆにすち(コンソールに文字列が表示されました) 文字列が表示されたコンソールウィンドウ

コンソールウィンドウに「Startメソッドが呼ばれたよ!」と表示されました!

まとめ

今回は、アセットとして生成したスクリプトを実行させるには、オブジェクトのコンポーネントとしてアタッチして、シーンと関連付ける必要がある、というお話でした。これで記述したコードをゲームに反映する準備ができました。

次回予告

Next time on... ユーザー操作の取得!

次回はキーボードやマウスの操作を拾うことに挑戦します。少しずつ少しずつですが、前に進んで行きましょう!
では、今回はこの辺で。

コメント