UnityUnityの使い方

【Unity入門③】C#スクリプトについて

Unity

こんにちは!今日はUnityでゲームを作るときに欠かせない、C#スクリプトについてお話しします。C#スクリプトって聞くと、なんだか難しそうに感じるかもしれませんが、安心してください!一緒に少しずつ学んでいきましょう。

C#スクリプトって何?

C#(シーシャープ)スクリプトは、Unityでゲームの動きを作るためのプログラムです。例えば、キャラクターがジャンプする、敵が動く、スコアが増えるなど、色んなことができます。プログラムと聞くと難しそうに思うかもしれませんが、基本を押さえれば大丈夫ですよ!

1.どうやってC#スクリプトを作るの?

まずは、UnityでC#スクリプトを作る方法を見てみましょう。

  1. Unityを開く: Unityのプロジェクトを開いてください。
  2. プロジェクトウィンドウで新しいスクリプトを作る:
    • プロジェクトウィンドウの空白部分を右クリックします。
    • 「Create(作成)」を選び、「C# Script(C#スクリプト)」をクリックします。
    • スクリプトに名前をつけてください(例えば、MyFirstScript)。

2. スクリプトをエディタで開く

作成したスクリプトをダブルクリックすると、Visual Studioなどのコードエディタが開きます。ここで、ゲームのキャラクターやアイテムなどに指示を出します。

3. 簡単なC#スクリプトを書いてみよう

C#スクリプトで、簡単なゲームを作るための第一歩は、画面に何かを表示させることから始めましょう。

  • using UnityEngine;:Unityの機能を使うためのおまじないみたいなものです。
  • public class PlayerController : MonoBehaviourPlayerControllerという名前のクラス(スクリプト)を作ります。MonoBehaviourはUnityでスクリプトを使うための基本のクラスです。
  • public float speed = 5f;:キャラクターが進む速さを決めます。5fは速さの数値です。
  • void Update():毎フレームごとに呼ばれる関数です。ここにキャラクターの動きを書きます。
  • transform.Translate(Vector3.forward * speed * Time.deltaTime);:キャラクターを前に動かします。

C#スクリプトをダブルクリックするとVisual Studioが起動します。

試しにvoid Startの{}の間にコードを書いてみます。

{}の数が合わなかったり{}中に記入されていないと動かないので注意してください。

Debug.Log(“テスト”);と入力してみます。

コンソールウィンドウに「テスト」と表示してください。というプログラムです。

基本的に半角で入力しますが””で囲まれたところは全角で入力しても大丈夫です。

一文字でも間違えてしまうと動かないので注意してください。

間違って入力されていたり全角で入力されていたり、{}の数が多くなっていたりすると、

画像のように赤いなみ線が出てエラーになるので修正してください。

Visual Studioには補助機能があるので途中まで入力すると候補が出てきます。

これを使うと簡単に入力することができます。

入力ができたらCtrl+Sもしくは左上のファイルの項目から保存します。

保存を忘れるとプログラムは動かないので注意してください。

プログラムの緑色の部分はコメントアウトといって、文章の前に//を付けると緑色になり、プログラムに反映されなくなります。メモなどに使用することができます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MyFirstScript : MonoBehaviour
{
    // 初期化処理を行う
    void Start()
    {
        // ゲーム開始時に一度だけ実行される
        Debug.Log("Hello, Unity!");
    }

    // 毎フレームの更新処理を行う
    void Update()
    {
        // フレームごとに実行される
    }
}
  • using:必要なライブラリをインポートします。
  • class:スクリプトのクラス名です。作成時に付けた名前が使われます。
  • Start():ゲームが始まるときに一度だけ呼ばれる関数です。
  • Update():毎フレーム呼ばれる関数です。

4.スクリプトをオブジェクトにアタッチしよう

スクリプトを作成しても、それだけでは何も起こりません。スクリプトをゲームオブジェクトにアタッチする必要があります。

  1. ヒエラルキーウィンドウで、スクリプトをアタッチしたいオブジェクトを選びます。例えば、「Sphere」という名前のオブジェクトを使いましょう。
  2. プロジェクトビューから「MyFirstScript」スクリプトを見つけて、ドラッグ&ドロップで「Sphere」にアタッチします。

5. スクリプトを実行してみよう

ゲームを実行してみましょう。Unityエディタ上部の再生ボタンを押すと、ゲームが開始されます。コンソールウィンドウに「Hello, Unity!」というメッセージが表示されれば成功です!

C#スクリプトは最初は少し難しいかもしれませんが、慣れてくると色々なことができるようになります。少しずつ練習して、楽しいゲームを作っていきましょう!

よくある質問

Q: スクリプトをエディタで開けないんですが?

A: Visual Studioがインストールされていないか、Unityの設定が必要かもしれません。Unityの「Edit(編集)」→「Preferences(設定)」→「External Tools(外部ツール)」で確認してみてください。

Q: スクリプトがうまく動かないんですけど?

A: スクリプトにエラーがあるかもしれません。エディタのエラーメッセージを確認して、修正してみてください。特にスペルミスや、カッコの閉じ忘れに注意しましょう。

Q: 他の動きを追加したいんですけど、どうすればいいですか?

A: Update関数の中に他の動きを書き足すことができます。例えば、ジャンプさせたい場合は、transform.Translate(Vector3.up * jumpHeight * Time.deltaTime);のように書きます。