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

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

今回はUnityのソースコードを関数化ですね。ようやくプログラムっぽくなってきましたね。

Unityのソースを関数化

前回、回復アイテムが「どの場所に出現するのか」を指定してあるソースを見たり触ったりしましたね。今回もそのソースを触っていきます。前回と同じようにSpawnerSampleを開きます。

コードの27-31行目に追加でソースコードを書きました。下のコードです。

angle = 135;
direction = Quaternion.Euler(0, angle, 0) * Vector3.right;
spawnPosition = transform.position + direction * radius;
Instantiate(ObjectToSpawn, spawnPosition, Quaternion.identity);

このコードを追加することで回復アイテムが4つに増えます。実際に「再生」してみると下記のようになりますね。

ここで注目していくのはアイテムが増えるごとにソースコードの行が増えることです。数個なら問題ないですが、仮に10個、20個となるとかなり長いソースコードとなります。

そこで関数化をしてこれをまとめていきます。プログラムを触ったことがある人には割と当たり前ですが、まったく触ったことがない人にはとっつきにくいかもしれません。

下記の14-16行目は19-21行目、24-26行目、29-31行目に同じコードが出てきてますね。これをまとめるのが関数です。

具体的には33行目から書いたような感じですな。この辺は慣れてる人は平気だと思いますが、慣れてないと「なんじゃこりゃ」ってなりそうですね。自分も昔は当然わからなかったし。

そんでもってこれをまとめるとこんな感じ。大分圧縮できましたね。これで同じように動くのが確認出来たらOK。更に回復アイテムの数を増やしたい場合は14行目とかにSpawnPoint(160)みたいな感じで1行追加するだけでOK。

関数をうまく使えばミスも減るし修正箇所も少なくなるのでとても便利なものだけど、初心者のうちは「こんな感じか」くらいでいいかなー。と趣味レベルなら。

最後に、わざと21行目を下記のように記述してみます。頭のVector3を取ってあります。

この状態で実行するとエラーが出て動かないです。「コンソール」を選択すると詳しいエラー内容が確認できるようになっています。今回のエラーの内容はspawnPositionが「何者かわからないですよー」って感じですね。

「does not exist in the current context」は大体、記述ミスか、定義してないか。そんな感じだと思います。たぶん。

基本的にエラーは英語で表示されるけど、単語ごとに切り離してGoogleで検索すると大体答えが見つかるんじゃないかなー。ってな感じですな。

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