これは、おいどんが最高のUnity先生になるまでの物語 part002

お疲れ様です☆

今日の勉強した記録をサッと残したいと思います。

今日はこちらの動画を見て簡単なシューティングゲーム(インベーダーのようなもの)を作ってみました!

これから先もしばらくは、こちらの次世代型ITスクール ITeens Labさんの動画を参考に学んでいこうと思っていますので、このブログを読んでくださる方は、次世代型ITスクール ITeens Labさんの動画を見ながらだと、どこで詰まっているのか分かりやすいかと思います。

動画の中で、詰まった箇所、覚えたはずなのに忘れてたところ(汗)、押さえておきたいポイントを書き記しましたので、共有したいと思います。

もし、これから先、同じところで詰まった方の助けになれれば幸いです。

Unity : 覚えきれていなかった変数の意味

まずは「忘れてたところ」からいってみましょう!

Instantiate

勉強開始して、初っ端からこの関数で詰まってしまいました(汗)

Instantiate…何だっけ?

動画の説明をよく聞いてみると、instantiateは「発生させる」という意味とのこと。

今回僕が作ったシューティングゲームなどの場合は、”発生させる”というより、どちらかというと”(弾を)発射する”という感じですね。

もう何度も何度もこの変数は見かけているのに未だに馴染めない自分に少し自己嫌悪。。

ただ、こうして記録してみると、意味をよく理解できた気がして、今度こそもう忘れなさそう(笑)

振り返って記録するのって、思ってた以上にめちゃくちゃ大事で効果も絶大なのかもですね!

Quaternion.identity

もう一つ、忘れていた関数がQuaternion.identity

Quanternion.identityの意味は「回転はそのままオリジナルを使う」という意味だそうで、

意味を理解するのもなかなか難しいですが、

更に”Quanternion.identity”という妙に長ったらしい名前で覚えにくいんですよね…

…と思ったけど、今何回か書いているうちにスペル覚えちゃいました(笑)

Quanとternとionに分けて覚えれば意外と覚えやすかったです。

といっても、実際にコードを書く際には入力補完(Visual Studioの予測変換機能)でスペル丸々覚える必要はないのですが、まあ、知識が多いに越したことはないですし(笑)

というわけで、上記の2つの変数を使った例文とその意味を以下に書いてみようと思います。

『例:Instantiate(Tama, transform.position + Vector3.forword * 2, Quaturnion.identity);』
 [発生させる] [発生させるもの] [発生を始める場所] [回転はそのままオリジナル(デフォルト)を使う]

これを直訳すると「Tama という新しいインスタンスを現在のオブジェクトの前方2mの位置にデフォルトの向きで生成する」という意味になります。

なんか新しく言語覚えるのって難しいものですねぇ…(汗)

はい!というわけで、今回は2つの関数をしっかり覚えられました!

Unity…というかC#って覚えるのに時間かかりますねえ。

でも、なんかC#でコード書くっていっても作業の約半分はUnityエディタの操作なので、他の言語に比べてちょっと謎のお手軽感があります(笑)

「score」をカウントさせる時のポイント

敵を倒した際にスコアをカウントしたいのですが、

そのカウントさせるコードの書かれたスクリプトを何かのGameObjectに付けないといけません。

EnemyPlayerにも付けられるんですが、そうすると、

もしEnemyPlayerがゲーム中に消滅してしまったら、スコアのカウントは止まってしまうんです。

そのため、空のゲームオブジェクトを作って、それにスクリプトを付けるのが良いようです。

ちなみに空のゲームオブジェクトを作る手順はHierarchyからCreateEmptyGameObjectです。

スクリプトを作るときは、スクリプト名をデフォルトの「GameObject」から「GameManager」に変えるのがUnity界の常識のようです。

GameManager」に変えると見慣れたC#のアイコンではなく自動的に歯車のマークになるんですが、

なんかこれ、ゲームでよくある裏技というか隠し要素みたいで、ちょっとテンション上がりません?(笑)

scoreTextをいじるために必要な重要コード

あと、scoreTextに関連する大事なポイントとして、

Text」コンポーネントをいじるためには、スクリプトの先頭に「using UnityEngine.UI」を定義しなければならないことですね。

まだまだ数をこなしていないから、よく書き忘れてしまいます(汗)

Text“と”using UnityEngine.UI“はセットで覚えないとですねぇ。

以下に例文を書いてみました!

void Update()
{
   scoreText .text = “Score : “ + score;
}
  
[scoreTextをいじります][その中のtextを書き換える機能を呼び出す][Score : “の後はscoreの変数の中身を表示する(別のスクリプトで定義したscoreの値を持ってきて表示)]

直訳すると、

scoreText変数の中のtextを書き換える機能を使ってScore : 〇〇”と表示する

という意味です。

scoreText?何、これ変数なの??関数じゃないの~?!

(((どんだけ理解力ないの(汗))))

まとめ

ってな感じで関数と変数の区別もろくにできてないくらいの成長の遅さですが(汗)

諦めないが悪いことだけが取り柄なので、これからもがんばります!!

年末も訓練所はお休みとなりますが、一応自宅で自習するつもりなので、また分からなかったことが解決できたときには、ここに記録したいと思います。

最後まで見ていただきありがとうございました!!

でわ、また~ノシ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA