上から落ちてくるブロックを床の上で寸止めして、ギリギリを
狙うゲーム3回目です。
応用すれば、いろんなゲームに使えそうな技術が多くあるので、
是非勉強してみてください。
初心者向きとは書いていますが、ざっくりなところもあります。
ご容赦ください。わからなければ、質問してくださいね。
(TwitterとかでもOKですよ)
GameC(Game Directorにアタッチしてあるやつ)の続きです。
今日は「地面までの距離がわかる」ところまでいきましょう。
前回と同じですが、プログラムをアタッチしているのはGameDirector
という全体の進行役に決めたオブジェクト。
このオブジェクトから直接、3Dテキストオブジェクト(Message)
を操作することはできません。
なので、前回と同じで
1 オブジェクトを発見して変数に格納
2 さらに、テキストを司る部分を取得
しておく必要があります。
//落下オブジェクトを格納する変数
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)&&missFlag==0)
{
//重力を切る
ObjARigid.useGravity = false;
//加速度をなくす
ObjARigid.velocity = Vector3.zero;
//距離を表示
MesTM.text="地面まで"+(ObjA.transform.position.y-0.5f);
}
}
これで、テキストを書き換えることができました。
0.5引いてあるのは、オブジェクトの真ん中が計測のポイントに
なっているので、床までの距離を引いたわけです。
このように、Unityでは各オブジェクトを発見して、その中のプロ
パティを変更しながらプログラムを作っていきます。
次回も、プログラムを作っていきます。
地面に衝突したら、距離もへったくれもないので。
・地面に衝突したことをオブジェクトからゲームティレクターに
返すプログラム。
これを進めていきましょう。
それではよきプログラミングライフを!
またね。