上から落ちてくるブロックを床の上で寸止めして、ギリギリを
狙うゲーム5回目です。
応用すれば、いろんなゲームに使えそうな技術が多くあるので、
是非勉強してみてください。
初心者向きとは書いていますが、ざっくりなところもあります。
ご容赦ください。わからなければ、質問してくださいね。
(TwitterとかでもOKですよ)
今日はGameCのプログラムを改造していきます。
今日は「衝突した後の処理」をさせます。
//落下オブジェクトを格納する変数
GameObject ObjA;
//落下オブジェクトのRigidbodyを格納する変数
Rigidbody ObjARigid;
//フラグ
public int missFlag=0;
//3DTextを格納する変数
GameObject Mes;
//テキストを格納する変数
TextMesh MesTM;
void Start()
{
//落下オブジェクトを取得
ObjA=GameObject.Find("ObjectA");
//落下オブジェクトのRigidbodyを取得
ObjARigid=ObjA.GetComponent<Rigidbody>();
//テキストを取得
Mes=GameObject.Find("Message");
//テキストのテキストメッシュを取得
MesTM=Mes.GetComponent<TextMesh>();
}
void Update()
{
//スペースキーを押すと
if(Input.GetKey(KeyCode.Space))
{
//重力を切る
ObjARigid.useGravity = false;
//加速度をなくす
ObjARigid.velocity = Vector3.zero;
//距離を表示
MesTM.text="地面まで"+(ObjA.transform.position.y-0.5f);
//再開の処理2秒後に
Invoke("Mokkai",2.0f);
}
最後から2行目だけ追加してます。
スペースキーを押して、無事止まった場合、
Invokeを利用して、2秒後にもう一度プレイを再開させます。
さらにその後に追加
//ミスフラグが立った場合テキストを更新
if(missFlag==1)
{
//失敗メッセージ
MesTM.text="失敗!";
//重力を切る
ObjARigid.useGravity = false;
//加速度をなくす
ObjARigid.velocity = Vector3.zero;
//フラグを戻す
missFlag=0;
//再開の処理2秒後に
Invoke("Mokkai",2.0f);
}
}
衝突した場合、スコアは表示せずに
再度のプレイに移行させます。
再度のプレイに移行させます。
void Mokkai(){
//メッセージ
MesTM.text="もう一度";
//物体の高さを戻す
ObjA.transform.position=new Vector3(0,5,0);
//重力をon
ObjARigid.useGravity = true;
}
これを追加しておきます。
うまく行っても失敗しても、これが実行されて
オブジェクトは再び上へ移動し、落下を再開します。
次回は最終回です。
・最高記録の更新!
それではよきプログラミングライフを!
またね。