前提・実現したいこと
現在TPSを作成しています。
銃を撃った際、銃口に銃弾を生成してその弾丸のvelocityを弄ることで初速を与えているのですが、至近距離で撃った場合、初速が与えられる前に弾丸が当たってしまうからなのか、例えばRigidbodyを付けた物体に向かって撃ったとしても、少し離れた距離からなら当然その物体に力が加わりますが、至近距離の場合ビクともしません。
これを修正したいです。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Weapon : MonoBehaviour 6{ 7 [HideInInspector] public Transform muzzle; 8 [SerializeField] private Rigidbody bulletPrefab; 9 10 public void Attack() 11 { 12 Rigidbody bullet = Instantiate(bulletPrefab, muzzle.position, muzzle.rotation); 13 bullet.velocity = muzzle.forward * 80; 14 } 15}
*不必要な箇所は省略しています。
試したこと
弾丸のコライダーのisTrigeerをオンにして別途当たった物体に力を加えようと思いましたが、そうすると弾丸同士や同じような発射物等との接触が断たれてしまい目指すゲームとは異なってしまうため断念。
それともプラスでSphereCastなどを用いて実装するのが現実的なのでしょうか?
是非お力添えください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/12 07:34
2020/12/12 08:41 編集
2020/12/12 09:53
2020/12/12 10:35