三十二日目



落下物の当たり判定を設定した。
よく分からないエラーのせいで余計な戻り工程が発生してしまったが、
幸い、短い部分のみを書き直す程度で無事動いた。






コライダではなく、オブジェクトに円形の当たり判定を数学的に設定し、
その距離を計測して当たり判定とする形が採用されている。
字面で書くと難しそうだが、
やっていることは単に距離を測っているだけなのでシンプルだ。
追加した当たり判定は下記の通り。



        //当たり判定(追加)
        Vector2 p1 = transform.position;
        Vector2 p2 = this.player.transform.position;
        Vector2 dir = p1 - p2;
        float d = dir.magnitude;
        float r1 = 0.5f; //矢の半径
        float r2 = 1.0f; //プレイヤの半径
        if (d < r1 + r2)
        {
            //衝突した場合は矢を消す
            Destroy(gameObject);
        }

次は、落下物の自動生成である。
自動生成のスクリプトを書き終えたら、
矢のオブジェクトをプレハブ化する。
簡単に言うと、オブジェクトの設計図である。
なぜプレハブ化するのかというと、
今回のように自動生成するオブジェクトの変更(長さ、色など)を、
管理しやすくするという点があげられている。
プレハブ化した後はシーンに配置する必要はないので、シーンの落下物は削除する。
空のオブジェクトへ落下物の自動生成スクリプトを添付し、
スクリプトをプレハブと関連付ければ、
自動生成の機能は設定完了である。
動作は下記のとおりである。 


 


あとは生成の頻度などを調整する程度だ。


 




0 件のコメント:

コメントを投稿