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)

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る