Cou氏の徒然日記(2022)

ほのぼの日記ブログです。

Unityで遊ぼう その9 (オブジェクトの破棄)

その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;
            }
        }
    }


Unityで遊ぼう その9

前回は下にダミーフロアを作ってその接触判定でエラー判定を行いましたが、単純な座標取得で判定でもよさそうです。 

■ 3次元座標取得

Vector3 tmp = startBall.transform.position;

■ オブジェクト破棄

Destroy(startBall);