[Unity初心者日記] キューブを拡大/縮小してみる

ヨメレバCSS
オリジナルCSS

前回:[Unity初心者日記] キューブを回転させる

キューブを拡大/縮小してみます。

これにはgameObject.transform.localScaleを変更します。

Scaleにはpositionやrotationとは違いローカルしかないですが、これが要はオブジェクトの大きさの倍率になるので、ローカルだけでよい話です。

lossyScaleというプロパティもあり、これがワールドから見た絶対スケールになりますが、読み取り専用プロパティとなっています。

スポンサーリンク
GoogleAdSence レクタングル(大)

Scaleを変更する

キーの上下で縦方向の、左右で横方向の、Fire1と2でZ方向のスケールを変更してみます。

まずいつもどおりCubeをひとつ用意して、CubeScale.csスクリプトを作成、それにコンポーネント追加。下のスクリプトをUpdateに追加します。

gameObject.transform.localScale = new Vector3(
	gameObject.transform.localScale.x + Input.GetAxis("Horizontal"),
	gameObject.transform.localScale.y + Input.GetAxis("Vertical"),
	gameObject.transform.localScale.z
);
if (Input.GetButton("Fire1"))
{
	gameObject.transform.localScale = new Vector3(
		gameObject.transform.localScale.x, 
		gameObject.transform.localScale.y, 
		gameObject.transform.localScale.z + 0.5f
	);
}
if (Input.GetButton("Fire2"))
{
	gameObject.transform.localScale = new Vector3(
		gameObject.transform.localScale.x,
		gameObject.transform.localScale.y,
		gameObject.transform.localScale.z - 0.5f
	);
}

実際動かしてみると、なんかこうふよふよしている感じがして妙に楽しくなってくるところある…

Unity_1_6_scale

面白いのはマイナスにつきぬけたときで、そこで止まるんじゃなくて反転して伸びていくのね。

なるほどと思いました。

lossyScaleの使いどころは?

なんかScaleはこれだけで終わる感じなので。

lossyScaleは実際のスケール、座標でいうと絶対座標のようなものが登録されているので、それを基準としてサイズの調整をすることができそう。

親オブジェクトのスケールを変化させても子オブジェクトを変化させたくない場合」にあるような、親オブジェクトだけを拡大/縮小する、または子オブジェクトだけを、といったことに使えるようです。

いろいろなパーツを作っていく上では必要になってくることがありそうです。

次回:[Unity初心者日記] オブジェクトを配置してみる

スポンサーリンク
GoogleAdSence レクタングル(大)