ROOKOW

コード、書かないのか?

「2048 Unity Game Template」を解析してみる -3

   

前回の続きです。

今回はスクリプトをそれぞれ見ていきたいと思います。
※ソースコードの著作権的な取扱いがわからないので、ソースコードを載せるのは止めておきます。

スクリプトは「Tile」「TileAnimationHandler」「GridManager」の3つだけ。
行数の少ない順に見ていきたいと思います。

なお、私は本業がプログラマーとかではないので、解釈が思いっきり間違っていたらごめんなさい。

Tile

「Tile」は、プレハブ「NoTile」と「2」〜「2048」の各数字にそれぞれアタッチされています。
※各数字には「TileAnimationHandler」もアタッチされてますね。こっちは後で見ます。

スクリーンショット 2015-01-17 8.38.57

スクリーンショット 2015-01-17 8.38.41

スクリーンショット 2015-01-17 8.39.19 2

スクリーンショット 2015-01-17 8.39.23 2

アイコンの絵からもわかりますが、C#で書かれてますね。
このスクリプトではint型の「value」と「power」、bool型の「upgradedThisTurn」という変数の宣言だけ。

「value」には、各数字と同じ数値がプレハブ側で設定されています。
「power」は、プレハブ「2」には数値の1、プレハブ「3」には数値の2、プレハブ「4」には数値の3…というように数字が大きくなるにつれて+1ずつされています。
何に使うんだろ。後でわかるのかな。

TileAnimationHandler

「TileAnimationHandler」はプレハブの各数字「2」〜「2048」にアタッチされてます。

スクリーンショット 2015-01-17 8.39.19 2

スクリーンショット 2015-01-17 8.39.23

前述の「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」から命令されるのかな。

 - unity