「2048 Unity Game Template」を解析してみる -3
前回の続きです。
今回はスクリプトをそれぞれ見ていきたいと思います。
※ソースコードの著作権的な取扱いがわからないので、ソースコードを載せるのは止めておきます。
スクリプトは「Tile」「TileAnimationHandler」「GridManager」の3つだけ。
行数の少ない順に見ていきたいと思います。
なお、私は本業がプログラマーとかではないので、解釈が思いっきり間違っていたらごめんなさい。
Tile
「Tile」は、プレハブ「NoTile」と「2」〜「2048」の各数字にそれぞれアタッチされています。
※各数字には「TileAnimationHandler」もアタッチされてますね。こっちは後で見ます。
アイコンの絵からもわかりますが、C#で書かれてますね。
このスクリプトではint型の「value」と「power」、bool型の「upgradedThisTurn」という変数の宣言だけ。
「value」には、各数字と同じ数値がプレハブ側で設定されています。
「power」は、プレハブ「2」には数値の1、プレハブ「3」には数値の2、プレハブ「4」には数値の3…というように数字が大きくなるにつれて+1ずつされています。
何に使うんだろ。後でわかるのかな。
TileAnimationHandler
「TileAnimationHandler」はプレハブの各数字「2」〜「2048」にアタッチされてます。
前述の「Tile」よりは長いスクリプト。
ここで宣言されている変数はfloat型の「scaleSpeed」と「growSize」、Transform型の「_transform」、Vector型の「growVector」の4つ。
あれ? Transformって何だっけ?
公式のリファレンスによると「オブジェクトの位置、回転、サイズを扱うクラスです。」とのこと。ああ、そっか。超基本的なことを忘れてた。この先不安だ。
メソッドは「AnimateEntry」「AnimateUpgrade」「IEnumerator AnimationEntry」「IEnumerator AnimationUpgrade」あと「Start」の5つ。
「Start」メソッドで「growVector」を定義してるけど、xもyも「growSize」を入れています。
「AnimateEntry」はコルーチン「IEnumerator AnimationEntry」を、「AnimateUpgrade」はコルーチン「IEnumerator AnimationUpgrade」を動かすだけのためのメソッド。これ何で必要なんだろ。使いたい時に直接コルーチンを呼び出しちゃダメなのかな。
「IEnumerator AnimationEntry」はタイルを出現させて、通常の大きさに調整するメソッド?
「IEnumerator AnimationUpgrade」はタイルを出現させていったん「growSize」の大きさまで大きくした後に、通常の大きさに調整するメソッドっぽい。
でもこれらはどこから使うんだろ。
さて、今回はここまでにして、次は一番長いscript「GridManager」にチャレンジしよう。
あ、「AnimateEntry」と「AnimateUpgrade」はこの「GridManager」から命令されるのかな。