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になった時点で再度ボールがぶつかると消滅。
いまいち、綺麗じゃないけど取り敢えず出来た(・ω・ )