5. Unityゲームプログラミング
5.1 プログラムの作成
プログラムの作成は、Projectウィンドウで
Create > Script
を選択します。こちらから作成するとUnityで扱えるようにMonoBehaviourを継承したひな形のスクリプトが作成されます。
スクリプトとはプログラムが書かれているファイルです。スクリプトの名前は日本語全角文字を使わないようにしてください。
Unityではインストール時にVisual Studioをインストールするかを聞かれますので、Visual Studioを使ってプログラムを作成することはできますが、著者はVisual Studioを使わずVScodeを使ってプログラムを書いています。Visual Studioを使うと、起動時は重いのですが、入力候補やデバッグ作業の補助ツールが充実しているので、これは好みでよいと思います。VScodeでもUnity用やC#用の入力候補のプラグインを追加することで補助機能が使えます。
5.2 プログラムの初期状態とそれぞれの意味
プログラミング言語はC#になります。試しにtestという名前のスクリプトを作成します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour{
void Start(){
}
void Update(){
}
}
using
最初からいろいろな機能が用意された状態でプログラミングできるようになります。
C#の機能を使用することができます。
using System.Collections;
using System.Collections.Generic;
Unityの機能を使用する
using UnityEngine;
class
C#はオブジェクト指向型のプログラミング言語です。クラスは設計図です。
testという名前の設計図が作成されています。
継承とは、元々ある設計図を元にするという意味です。MonoBehaviourはUnityが作ってくれた設計図です。
Unityで使用するための枠組みがMonoBehaviourとして用意されているということを意味しています。
public
「アクセス修飾子」で説明します。
publicは、他のファイルからアクセス可能にすることを示します。
public class test : MonoBehaviour
範囲
{}が範囲を表します。
public class test : MonoBehaviour{
....
}
コメント
コメントは作成者が追加する一言メモです。コメントに書かれた内容はUnityは無視します。
/*
~この間は全てコメントになる~
*/
// これは一行コメント
メソッド
メソッドは1つ1つの機能で、StartとUpdateはメソッドです。
メソッドは自分でも作成することができます。
また、StartとUpdateはMonoBehaviourによってUnity側が呼ぶ特別な意味を持つメソッドです。
- Start : この設計図がゲーム内で実体化+有効の両方を満たす時Unity側から1回だけ呼ばれる
- Update : 有効な時にゲーム中毎フレームUnity側から呼ばれる
デバッグ
Debug.Log(""); //ログを表示する命令
Console > ログを表示するウィンドウ
5.3 プログラムを動かしてみる
"ハローワールド"という文字列を表示させるプログラムを書いてみます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour{
void Start(){
Debug.Log("ハローワールド");
}
void Update(){
}
}
5.4 GameObjectを動かしてみる
CubeのTransformのPositionを毎フレームXに1を足して動かすプログラムを書きます。
Vector3.rightは(1,0,0)のことを指します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour{
void Start(){
}
void Update(){
transform.position += Vector3.right;
}
}