落下物の当たり判定を設定した。
よく分からないエラーのせいで余計な戻り工程が発生してしまったが、幸い、短い部分のみを書き直す程度で無事動いた。
その距離を計測して当たり判定とする形が採用されている。
字面で書くと難しそうだが、
やっていることは単に距離を測っているだけなのでシンプルだ。
追加した当たり判定は下記の通り。
//当たり判定(追加)
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 件のコメント:
コメントを投稿