【Unity】スクリプトのアタッチを解説

Unityのスクリプトアタッチ
スポンサーリンク

今回のUnity入門記事は、ゲーム制作で重要になってくるスクリプトのアタッチ(プログラムをオブジェクトに反映させる)方法について解説していきます。

これを覚えればある程度基本的な操作は把握できたと言ってもいいと思いますので、しっかり覚えていきましょう!

POINT!

・Unityのスクリプトアタッチを覚える
・簡単なサンプルコードを作ってみる

サンプルプロジェクトの準備

今回は新規サンプルプロジェクトを一つ作ってみましょう!

サンプルプロジェクトは、床のように使えるCubeを一つ準備します。その他のオブジェクトは今はまだ使いません。

サンプルプロジェクト

上の参考画像のように、ある程度の広さを持ったCubeを一つシーンに配置します。参考画像のCubeのサイズはxとzをそれぞれ10にしています。また、見やすいように位置のyに-2を設定して少し中央から移動させています。

サンプルコードを書いてみる

次にアタッチする(オブジェクトに反映させる)コードを書いてみましょう。

コードの詳しい説明は次回からの「Unityスクリプト解説」で行いますので、今回は以下の手順通りに追加だけ行ってください!

1:C#スクリプト(プログラムコードを書くためのファイル)を新規作成

C#スクリプトの新規作成

Assetsのタブで右クリックメニューを開くとCreateが選べると思います。そこから「C# Script」を選択してください。新しいスクリプトの名前は好きにつけてください。

今回のサンプルは動きをテストするためのものなので、こちらの参考では「MoveTest」という名前にしています。

※日本語の名前をつけるとエラーが出ることがあるので、日本語表記以外で名前は入力してください! またキーボードの入力が「かな入力」状態では上手く反映が行われないことがあるので、「半角英数入力」の状態で名前をつけるようにしましょう。

2:スクリプトを開く

スクリプトを作ったら、ダブルクリックでスクリプトファイルを開きます。

スクリプトを開く

Visual Studioのインストールが完了していれば下のような画面が開かれるかと思います。

スクリプトを開く

注意点として、赤い枠で囲んだ部分の表記が必ず一致していることを確認しましょう。Unity上で一度ファイルを作った後に再度ファイルの名前を変えると、ファイル名とコード内の赤枠部分が違う名前になることがあります。その場合、エラーが出ることがありますのでお気をつけください!

3:サンプルコードを書く
以下のサンプルコードを16行目に書きます。今回はそのままコピーしたものを貼り付けてもOKです。

if (Input.GetKey(KeyCode.A))
{
    this.transform.Rotate(0, 0, 1);
}

if (Input.GetKey(KeyCode.D))
{
    this.transform.Rotate(0, 0, -1);
}

コピー後は以下のようになっていれば問題ありません。

コピー後のサンプル

コピー完了後は「Ctr(macの場合command)+S」でコードの上書き保存を行います。

保存後のサンプル

上書き保存ができると上の画像のように、赤枠の部分が「○」から「×(ファイルを閉じるボタン)」に変わります。保存がしっかりできているかの判断基準にしてください!

スクリプトのアタッチ

では次はいよいよオブジェクトにスクリプトをアタッチしてみましょう! 

やり方はとても簡単です。アタッチしたいオブジェクトをヒエラルキー上で選択して、あとはスクリプトファイルをドラッグ・アンド・ドロップの操作でインスペクター上に持っていくだけです。

アタッチの操作

上手くアタッチが完了すると、インスペクター上にスクリプトファイルが追加されていることを確認できると思います。

スクリプト追加後

追加はこれで完了です。あとは「再生マーク」を押して、ゲーム実行状態を確認してみましょう。プログラムコードが問題なく書けていればキーボードの「A」キーと「D」キーを押した時にCubeオブジェクトが動くことを確認できるはずです。

※上手く動かない時は、保存ができているかや、コードのコピー場所などを再度ご確認ください。

また、アタッチするオブジェクトを間違えてしまった場合は、以下のようにスクリプトの右上にある点を選んで「Remove Component」を行えばスクリプトは消せます。この操作も覚えておきましょう!

削除の方法

動きを確認してみる

初回のインストールからここまでやった項目を元に、ゲーム実行中の動きを少し遊べるものに変えてみたいと思います。

以下のように「Sphere」オブジェクトを追加してコンポーネントの追加(Add Component)で「Rigidbody」を追加してください。そして「Sphere Collider」に新しい「Physic Material」を設定します。

コンポーネントの追加

「Physic Material」は「Bounciness」を1にしておきます。

マテリアルの値

上の設定が完了したら「再生マーク」を押してゲームを実行状態にしてみましょう!

実行画面

床の角度に合わせてボールが転がるサンプルが作れたと思います。

この設定は、応用すれば「端末の傾きに合わせてボールを転がすゲーム」なども簡単に作ることができます。その他の3Dゲームでも使えるポイントが多いものなので、一連の操作はスムーズにできるようになっておきましょう!

まとめ

今回はゲーム作りで重要になるスクリプトのアタッチについて解説しました。

実際のゲーム作りでも、動かしたいオブジェクト(操作対象)に、どういう動きをするかを書いたコードをアタッチすることで制作は進んでいきます。

この「動かしたいオブジェクトにスクリプトをアタッチする」という感覚は、非常に重要なのでぜひ覚えておきましょう!

次回からは、Unityにおけるスクリプトの基礎を解説していきたいと思います。