32日目 落ちものゲームを作ろう その3
落下物の当たり判定を設定した。
よく分からないエラーのせいで余計な戻り工程が発生してしまったが、
幸い、短い部分のみを書き直す程度で無事動いた。
(カクヨムの仕様で掲載できないがここに画像がある
https://4.bp.blogspot.com/-8tIYzSyAn2o/WEA4t3Ycf_I/AAAAAAAATh0/XsAr_mkUcXABqJNrP5mHnqr-wcD8fqBzwCLcB/s1600/arrow_3.gif)
コライダではなく、オブジェクトに円形の当たり判定を数学的に設定し、
その距離を計測して当たり判定とする形が採用されている。
字面で書くと難しそうだが、
やっていることは単に距離を測っているだけなのでシンプルだ。
追加した当たり判定は下記の通り。
//当たり判定(追加)
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);
}
次は、落下物の自動生成である。
自動生成のスクリプトを書き終えたら、
矢のオブジェクトをプレハブ化する。
簡単に言うと、オブジェクトの設計図である。
なぜプレハブ化するのかというと、
今回のように自動生成するオブジェクトの変更(長さ、色など)を、
管理しやすくするという点があげられている。
プレハブ化した後はシーンに配置する必要はないので、シーンの落下物は削除する。
空のオブジェクトへ落下物の自動生成スクリプトを添付し、
スクリプトをプレハブと関連付ければ、
自動生成の機能は設定完了である。
実際の動作は下記のとおりである。
(カクヨムの仕様で掲載できないがここに画像がある
https://3.bp.blogspot.com/-eJ-49sObgCo/WEA4t8ND1BI/AAAAAAAAThw/YBuIVOiCsPkB-adMVSlaLqIuQqZ_jEAugCLcB/s1600/arrow_4.gif)
あとは生成の頻度などを調整する程度だ。
(カクヨムの仕様で掲載できないがここに画像がある
https://3.bp.blogspot.com/-Z4Cf-XlY3Ec/WEA4t1j17XI/AAAAAAAATh4/AhytQBwZ0v0K0NHuTS6kP3WTXVZbcWcygCLcB/s1600/arrow_5.gif)
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます