5. スクリプトを追加しよう

Unityでは C#UnityScript(Javascriptに似た言語) の2種類が使用できるようになっていますが、授業ではC#を使用します。 C#には下記のようなメリットがあります。

  • 使用者が圧倒的に多いので、解決方が探しやすい
  • 外部のプラグインはほぼ全てC#で書かれている
  • C#でないと解決が困難なケースもある

C#のファイルを新規作成しよう

下記のどれかの方法で追加する事ができるようになっています。

  • メインメニューから、Assets > Create > C# Script
  • プロジェクトウィンドウから、Create > C# Script
  • プロジェクトウィンドウ内で右クリックから、Create > C# Script

作成されるスクリプトはNewBehaviourScriptという名前がついていますが、 これからCubeを回転させるのに使用するのでCubeという名前に変更しておきましょう。 開いたファイルには最初につけた名前でMonoBehaviourを継承したクラスが作成されます。

先ほど作成したC#ファイル、Cubeをクリックするとスクリプトを編集するエディタが立ち上がります。 デフォルトの状態ではMonoDevelopというエディタが立ち上がります。

生成されるスクリプトの中身を理解しよう

作成したファイル単体はダブルクリックで開く事ができますが、このプロジェクト全体のプログラムを一度に開くにはメインメニューの Assets > Open C# Project から開けるようになっています。

先ほどのCube.csファイルは開くと中身はこのような感じになっています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Cube : MonoBehaviour
{

	// Use this for initialization
	void Start () {

	}

	// Update is called once per frame
	void Update () {

	}
}
関数 概要
Start 初回に一度だけ呼ばれる
Update 毎フレームの更新時に呼ばれる
using このプログラムにライブラリを読み込んでいる
public このクラスやメソッド、が外からアクセスできる
// コメントアウト
クラス 設計図が書かれている
メソッド 何をさせたいかが書かれている
プロパティ データが持っている特質、値
MonoBehaviour Unityで扱うプログラムの基本となるクラス

ここではStartの関数の中には初回に実行したいものを、 Updateの関数の中には毎フレーム実行したいものをそれぞれ記述する事で動作するようになっています。

1
2
3
4
5
6
7
8
void Start()
{
  // ここに処理を書く
}
void Update()
{
  // ここに処理を書く
}

オブジェクトを回すスクリプトを作成しよう

下記のプログラムを入力して保存します。 アップデートする毎に、トランスフォームのRotateの関数にどれだけ回したいかの値を渡しています。 渡している値は、Vector3という値を使用していて、中身はそれぞれ(x,y,z)の値が入っています。

1
2
3
void Update () {
	transform.Rotate (new Vector3 (0, 10, 0));
}

オブジェクトにプログラムをアタッチして回してみよう

ヒエラルキーウィンドウでCubeを選択し、インスペクタウィンドウのAdd Componentのボタンを押して先ほど作成したスクリプトをアタッチします。

再生して確認しよう

ツールバーの再生ボタンを押すとプログラムが実行され、オブジェクトが回転を始めます。

  • ショートカット、Cmnd+P でゲームを再生できます


試してみよう
他にもTranslateで移動させたり、同じスクリプトを別のオブジェクトにアタッチしてみたりなどさまざまな使い方をする事ができます。色々試してみましょう。

  • 回転する方向を色々変えてみよう
  • 移動させてみよう
  • カメラも移動させてみよう

6. アセットストアを使ってみよう