その8からの続き。
ステージはできたところで、落ちた時のエラー処理、再スタート処理は必要ですね。
今度は、ボールの座標で判定するようにしてみました。
■ スクリプト (C#)
public GameObject BallPrefab;
public bool boolBallFlag; //ボール状態判定フラグ//
public GameObject startBall; //ボールオブジェクト//
// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.A))
{
// "A"キーが押されたら
if (boolBallFlag == false)
{
// ボールフラグを判定して、落ちていると判断された場合は、ボールを再作成する //
Destroy(startBall); //ボールを破棄//
startBall = GameObject.Instantiate(BallPrefab); //ボールを再作成//
startBall.transform.position = new Vector3(-5, 1, -5);
boolBallFlag = true;
}
}
}
void FixedUpdate()
{
if (boolBallFlag == true)
{
// ボールの位置を取得し,落ちている場合は,ボールフラグをOFFにする //
Vector3 tmp = startBall.transform.position;
if (tmp.y < -5)
{
boolBallFlag = false;
}
}
}
前回は下にダミーフロアを作ってその接触判定でエラー判定を行いましたが、単純な座標取得で判定でもよさそうです。
■ 3次元座標取得
Vector3 tmp = startBall.transform.position;
■ オブジェクト破棄
Destroy(startBall);