上から落ちてくるブロックを床の上で寸止めして、ギリギリを
狙うゲーム二回目です。
応用すれば、いろんなゲームに使えそうな技術が多くあるので、
是非勉強してみてください。
初心者向きとは書いていますが、ざっくりなところもあります。
ご容赦ください。わからなければ、質問してくださいね。
(TwitterとかでもOKですよ)
まずは、スクリプトを作っておきます。
GameCと名付けて、Game Directorにアタッチしておきます。
で、プログラムを書いていきます。
今日は「スペースキーを押せば止まる」ところまでいきましょ
うか。
//落下オブジェクトを格納する変数
GameObject ObjA;
//落下オブジェクトのRigidbodyを格納する変数
Rigidbody ObjARigid;
//フラグ
public int missFlag=0;
変数の部分です。
オブジェクトとRigidを格納するもの。
ついでに、フラグも作っておきます。
これは後で、オブジェクトから「床に当たったよ」という
信号をキャッチするものだと考えてください。
void Start()
{
//落下オブジェクトを取得
ObjA=GameObject.Find("ObjectA");
//落下オブジェクトのRigidbodyを取得
ObjARigid=ObjA.GetComponent<Rigidbody>();
}
void Update()
{
//スペースキーを押すと
if(Input.GetKey(KeyCode.Space)&&missFlag==0)
{
//重力を切る
ObjARigid.useGravity = false;
//加速度をなくす
ObjARigid.velocity = Vector3.zero;
}
}
このプログラムをアタッチしているのはGameDirectorという
全体の進行役に決めたオブジェクトです。
このオブジェクトから直接、落下するオブジェクト(Object A)
を操作することはできません。
なので、startで
1 オブジェクトを発見して変数に格納
2 さらに、物理を司る部分を取得
しておく必要があります。
んで、update(常に反応する部分)でスペースキーが押されたら。
1 落下物の重力を切る
2 落下物の勢いを止める
っていうことになります。
次回も、プログラムを作っていきます。
・テキストの内容を書き換える準備
・箱と地面の距離を表示する。
これを進めていきましょう。
それではよきプログラミングライフを!
またね。