Ошибка в имени переменной:
В строке:
public AudioSourse _AudioSourse;
Вы объявили переменную с типом AudioSourse, однако правильное имя типа — AudioSource (с буквой "c" вместо "s").
Решение:
Измените строку на:
public AudioSource _AudioSource;
2. Отсутствие точки с запятой:
В строке
Решение:
Добавьте точку с запятой в конце строки
public float range = 15;
Потенциальная ошибка при воспроизведении звука:
В вашем скрипте отсутствует код для воспроизведения звука при выстреле.
Решение:
Добавьте код для воспроизведения звука в методе Shoot:
void Shoot()
{
RaycastHit hit;
if (Physics.Raycast(_cam.transform.position, _cam.transform.forward, out hit, range))
{
Debug.Log("Пиу пиу, я попал");
}
if (_AudioSource != null && shotSFX != null)
{
_AudioSource.PlayOneShot(shotSFX);
}
else
{
Debug.LogWarning("AudioSource или AudioClip не назначены.");
}
}
Убедитесь, что в инспекторе Unity вы назначили компонент AudioSource и аудиоклип shotSFX для соответствующих полей.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Weapon : MonoBehaviour
{
public float damage = 21;
public float fireRate = 1;
public float range = 15
public GameObject muzzleFlash;
public AudioClip shotSFX;
public AudioSourse _AudioSourse;
public Camera _cam;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetButton("Fire1"))
{
Shoot();
}
}
void Shoot()
{
RaycastHit hit;
if (Physics.Raycast(_cam.transform.position,_cam.transform.forward,out hit,range))
{
Debug.Log("пиу пиу я попал");
}
}
}