#Unity C#にでてくる最初の構文を解読しました
以下、サンプルコード。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class *** : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
こちらのコードを部分的に解読しました。
(注意)自分用のメモのため分かりやすさは追求していないです!!
##using System.Collections; / using System.Collections.Generic; / using UnityEngine; について
「System.Collections」「System.Collections.Generic」「UnityEngine」は『名前空間』という。
名前空間とはクラスを種類ごとに整理する仕組みのこと。
ざっくり言うと、いろいろな機能があるお道具箱で、「System.Collections」「System.Collections.Generic」「UnityEngine」というお道具箱を使う(using)という意味の一文。
public class *** : MonoBehaviour について
public
「他のクラスからどこからでも見えるようにする」という意味の予約語。
予約語とは「その言語内ですでに役割があるからオリジナルでは定義できない」という約束があるもの。
これが無いと、Unityエディタで使えなかったり、他のクラスから中身が見えない状態になってしまう。
逆に、隠すことを明示する場合はprivateを使う。
class ***
処理するデータとそれを処理する命令部分(メソッド)をひとつにまとめ(クラス)にするもの。
classに続く***が『クラス名』となり、このクラスを呼び出すことができる。
注意点としてUnityのルールでひとつの.csファイルで、ファイル名と同じクラスをひとつだけ宣言すると定めてあるので、それを守らないとエラーになる。
: MonoBehaviour
この後にあるクラスから派生していることを示す。
つまりクラス***は次の「MonoBehabiour」と言うクラスから派生しているよ、という意味。
MonoBehaviourは、Unityで作られるゲーム中で出てくる物体などの動作のきっかけ(イベント)で動かす処理のかたまり(メソッド)等をつなぐ役割をする。
Unityで扱うオブジェクトは、このMonoBehaviourから自動的に派生するようになっている。
void Start()とVoid Update() について
###void Start()
スクリプト起動直後に1度だけ実行したい処理を書く。
###void Update()
アニメーションなど「動かし続けたい」ものや、「ずっと処理し続けたい」ことを書く。
ゲームはフレーム単位ごとに更新され、その更新ごとにUpdate関数内の処理を繰り返してくれる。