こんにちは、のっくんです。
この記事ではFPSゲームで銃を発砲するための方法についてご紹介します。
FPSと銃の設定
FPSゲームを作るにあたり、アセットストアから以下をダウンロードしました。
- M4A1 PBR(マシンガン)
- First Person All-in-One(FPSキャラ)
両方とも無料なので嬉しいですね〜。
FirstPerson-AIOをセットしたら銃をセットします。
プレイヤーの子ではなく、カメラの子としてセットする点に注意です。
(最初、私はプレイヤーの子にセットしていたので、銃がカメラと連動して回転せずに困りました。)
銃は右下の方にセットしました。
弾を発射する
弾の発射は、Rayを使います。
基本的な流れとしては以下の通り。
- Rayを飛ばす
- 何かに当たったらエフェクトを生成もしくは表示する
- 敵のダメージを減らす
void Shoot() { Ray ray = new Ray(transform.position, transform.forward); RaycastHit hit; if (Physics.Raycast(ray, out hit, shootRange,raycastLayerMask)) { if (hitEffectPrefab != null) { if (hitEffect != null) { hitEffect.transform.position = hit.point; hitEffect.transform.rotation = Quaternion.FromToRotation(Vector3.forward, hit.normal); hitEffect.SetActive(true); } else { hitEffect = Instantiate(hitEffectPrefab, hit.point, Quaternion.identity); } } var targetMob = hit.collider.GetComponent<MobStatus>(); if (targetMob) { targetMob.Damage(1); } } Ammo--; }
基本は参考URLサイトの通りですが、敵のダメージを減らす処理を追加しています。