Unityのチュートリアルをやってみた 02 の宿題

Unityのチュートリアルをやってみた 02 - ザナスタの日記
で作ったのを宿題の通りに改造してみた。

こうなると「ボールが一定時間でスピードアップ」や「2回・3回叩かないと壊れないブロック」等を作りたくなりますね。
それは宿題としましょう。

とあるので、まずはスピードアップからやってみるかということで、手をつける。

…?(・ω・ )
どうやればいいのこれ。今まで弄った感じ、イベントドリブンのようなんだけど、
タイマーとかつけるの?

.NetのTimerクラスみたいのはないみたい。
Timeって言うインターフェースはあるみたいなんだけど。

ボールのUpdateイベントに突っ込んじゃえばいいか。

BallController.js

#pragma strict

var Speed = 20.0;
var AddSpeedRate = 20.0;
private var NextSpeed = 20.0;


function Start () {
	rigidbody.AddForce((transform.forward + transform.right) * Speed,
						ForceMode.VelocityChange);
}

function Update () {
	if (Time.time > NextSpeed) {
		NextSpeed = Time.time + AddSpeedRate;
		rigidbody.AddForce((rigidbody.velocity.normalized) * Speed, ForceMode.VelocityChange);
	}
}

出来たのがこれ。NextSpeedから速度追加が始まって、AddSpeedRate毎に追加。
なんかいけ好かないけどこれで良しとする。

次。2,3回叩かないと壊れないようにする。ブロックの処理を改造しちゃえばいいのかな?

BlockContoller.js

#pragma strict

private var BlockHP = 1;
function Start () {

}

function Update () {

}

function OnCollisionEnter(collision: Collision) {
	if (BlockHP > 0) {
		BlockHP--;
	} else if (BlockHP <= 0) {
		Destroy(gameObject);
	}
}

BlockHPって名前でプロパティをつけて、ボールがぶつかるたび(他のものがぶつかった場合でもか?)に1減って、これが0になった時点で再度ボールがぶつかると消滅。

いまいち、綺麗じゃないけど取り敢えず出来た(・ω・ )