Я хочу выстрелить лучом из кончика пистолета противника и посмотреть, попадет ли он в игрока.Для этого я создал пустой игровой объект, помещенный внутри оружия в иерархии, и переместил пустой игровой объект, который я назвал TipOfGun
, но я не прикрепил скрипт к TipOfGun
с именем Gun
с помощью rayCast, но он ничего не делает, посколькуЯ обеспокоен и после всех испытаний, которые я сделал.Я не могу понять, почему Raycast никогда ничего не попадает.Ниже приведен мой код, и я также публикую изображение своей иерархии.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Gun : MonoBehaviour
{
private ParticleSystem muzzleFlash;
Vector3 tipOfGun = new Vector3(0.009f, 0.329f, 0.017f);
// Use this for initialization
void Start()
{
GameObject muzzleFlashObj = GameObject.Find("muzzleFlash");
muzzleFlash = muzzleFlashObj.GetComponent<ParticleSystem>();
}
public void ShootWeapon()
{
muzzleFlash.Play();
Ray ray = new Ray(transform.position, transform.forward);
RaycastHit hit;
if (Physics.SphereCast(ray, 0.75f, out hit))
{
Debug.Log("Name of component hit:" + hit.collider.gameObject.name);
GameObject hitObject = hit.transform.gameObject;
if (hitObject.GetComponent<PlayerController>())
{
muzzleFlash.Play();
}
else
muzzleFlash.Stop();
}
}
}
![enter image description here](https://i.stack.imgur.com/QCOfY.jpg)