Я пытаюсь сделать пистолет, стреляя лучом из центра камеры, от которой пистолет - дитя, у меня также есть эффект частиц, когда удар происходит только, удар происходит в неправильном положении.
Я выполнил Debug.DrawLine и увидел, что начало луча происходит на 0,8 единицы выше центра камеры, и иногда оно попадает прямо в камеру. Вот сценарий оружия
using UnityEngine;
public class GunShoot : MonoBehaviour
{
public float gunDamage = 1f;
public float fireRate = .1f; // wait x seconds to fire again
public float weaponRange = 100f;
public float hitForce = 100f;
public Camera playerCam;
//public ParticleSystem muzzleFlash;
public GameObject impactEffect;
private float nextFire; // Holds the time for which the gun is able to fire again
void Update()
{
Shoot();
}
public void Shoot()
{
if (Input.GetButtonDown("Fire1") && Time.time > nextFire)
{
nextFire = Time.time + fireRate;
RaycastHit hit;
if (Physics.Raycast(playerCam.transform.position, playerCam.transform.forward, out hit, weaponRange)) // Center of the camera, directly forward, hat it hits and that infomation, the range of the weapon
{
Target target = hit.transform.GetComponent<Target>();
if (target != null)
{
target.TakeDamage(gunDamage);
}
GameObject impactGameObject = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
Destroy(impactGameObject, .15f);
}
}
}
}
Я использовал учебник Брэклиса https://www.youtube.com/watch?v=THnivyG0Mvo, но я последовал этому безоговорочно (за исключением изменения некоторых имен переменных), и я не могу видеть, где это идет не так.
Я не могу просто уменьшите максимум исходного луча, так как иногда он может в 1/10 раза выстрелить из правильного положения
Как вы можете видеть, он явно не стреляет из середины, где перекрестие ![enter image description here](https://i.stack.imgur.com/iAq2A.png)
Любая помощь будет большой благодарностью!