Unityのチュートリアルでコードを学ぶ【CreatorKit:BeginnerCode.03】

今回も前回のチュートリアルの続きを進めていきます。

前回は関数を少しやってみましたが、今回はさらに一歩進んだ「クラス」ですね。正直、私もそこまで詳しいわけではないのでなんとなーくでいきます。

Unityのクラス化(class)

下記は前回最後のSpawnerSampleソースです。

このソースを簡単に見ていくと、16行目からのSpawnPoint関数は回復アイテムを出現させています。そのSpawnPoint関数を8行目からのStart関数内で4回呼ぶことで4つのアイテムを出現させています。

そしてStart関数とSpawnPoint関数が入っているのが4行目に記載してあるSpawnerSampleというクラスって感じですね。

ということで今回は新しいクラスを追加してみます。

とりあえず上の方は置いといて下の29行目から47行目に下記のコードを追加しました。簡単にいうとLootAngle関数とNextAngle関数が入ったLootAngleクラスって感じですね。LootAngle関数では初期化を行い、NextAngle関数は呼び出すごとに角度をずらしてます。

public class LootAngle
{
    int angle;
    int step;

    LootAngle (int increment)
    {
        step = increment;
        angle = 0;
    }

    int NextAngle()
    {
        int currentAngle = angle;
        angle = Helpers.WrapAngle(angle + step);

        return currentAngle;
    }
}

このクラス利用するように置き換えたのがStart関数内の下記です。一番初めのnew LootAngleで初期化をして45をセットしています。一回目のmyLootAngle.NextAngle()には45が返ってくるので、SpawnPoint(45)と同じ動きになり、2回目はSpawnPoint(90)と同じ動きとなっていきます。

    LootAngle myLootAngle = new LootAngle(45);

    SpawnPoint(myLootAngle.NextAngle());
    SpawnPoint(myLootAngle.NextAngle());
    SpawnPoint(myLootAngle.NextAngle());
    SpawnPoint(myLootAngle.NextAngle());

が、しかし実際に上のソースコードで実行するとエラーになります。なぜならクラスの関数は他のクラスからはアクセスできないようになっています。そこで、他からもアクセスできるように下記のように関数の頭にpublicを付けてやります。こうすることでOKです。

実際に動かしてみて回復アイテムが4つ画面に表示されていれば完成です。

このクラスと前回やった関数はプログラミング初心者には絶対きついと思う。むしろ、ここがある程度理解できるようになると初心者脱出と個人的には思ってます。いきなり全部を理解するのは当然無理だと思います。自分も無理です。

とにかく分からないところが出てきたら細かく砕いて少しづつ理解していくのが重要かなー、という感じ。次回でこのチュートリアル「Beginner Code」も完了ですね。

タイトルとURLをコピーしました